alexjercan/bugnet huggingface dataset:
Round Table of Sages

$N$ sages are sitting around a round table with $N$ seats. Each sage holds chopsticks with his dominant hand to eat his dinner. The following happens in this situation.

If sage $i$ is right-handed and a left-handed sage sits on his right, a level of frustration $w_i$ occurs to him. A right-handed sage on his right does not cause such frustration at all.

If sage $i$ is left-handed and a right-handed sage sits on his left, a level of frustration $w_i$ occurs to him. A left-handed sage on his left does not cause such frustration at all.

You wish you could minimize the total amount of frustration by clever sitting order arrangement.

Given the number of sages with his dominant hand information, make a program to evaluate the minimum frustration achievable.

Input

The input is given in the following format.

$N$
$a_1$ $a_2$ $...$ $a_N$
$w_1$ $w_2$ $...$ $w_N$

The first line provides the number of sages $N$ ($3 \leq N \leq 10$). The second line provides an array of integers $a_i$ (0 or 1) which indicate if the $i$-th sage is right-handed (0) or left-handed (1). The third line provides an array of integers $w_i$ ($1 \leq w_i \leq 1000$) which indicate the level of frustration the $i$-th sage bears.

Output

Output the minimum total frustration the sages bear.

Sample Input 1

5
1 0 0 1 0
2 3 5 1 2

Sample Output 1

3

Sample Input 2

3
0 0 0
1 2 3

Sample Output 2

0
Treasure Map

Mr. Kobou found a bundle of old paper when he was cleaning his family home. On each paper, two series of numbers are written. Strange as it appeared to him, Mr. Kobou further went through the storehouse and found out a note his ancestor left. According to it, the bundle of paper is a treasure map, in which the two sequences of numbers seem to give a clue to the whereabouts of the treasure the ancestor buried.

Mr. Kobou’s ancestor divided the area where he buried his treasure in a reticular pattern and used only some of the grid sections. The two series of numbers indicate the locations: the $i$-th member of the first series indicates the number of locations in the $i$-th column (form left) of the grid sections where a part of the treasure is buried, and the $j$-th member of the second indicates the same information regarding the $j$-th row from the top. No more than one piece of treasure is buried in one grid section. An example of a 5 × 4 case is shown below. If the pieces of treasure are buried in the grid sections noted as "#" the two series of numbers become "0,2,2,1,1" and "1,1,1,3".

0	2	2	1	1

1	#

1	#

1	#

3	#	#	#

Mr. Kobou’s ancestor seems to be a very careful person. He slipped some pieces of paper with completely irrelevant information into the bundle. For example, a set of number series "3,2,3,0,0" and "4,2,0,0,2" does not match any combination of 5 × 5 matrixes. So, Mr. Kobou has first to exclude these pieces of garbage information.

Given the set of information written on the pieces of paper, make a program to judge if the information is relevant.

Input

The input is given in the following format.

$W$ $H$
$a_1$ $a_2$ $...$ $a_W$
$b_1$ $b_2$ $...$ $b_H$

The first line provides the number of horizontal partitions $W$ ($1 \leq W \leq 1000$) and vertical partitions $H$ ($1 \leq H \leq 1000$). The second line provides the $i$-th member of the first number series $a_i$ ($0 \leq a_i \leq H$) written on the paper, and the third line the $j$-th member of the second series $b_j$ ($0 \leq b_j \leq W$).

Output

Output "1" if the information written on the paper is relevant, or "0" otherwise.

Sample Input 1

5 4
0 2 2 1 1
1 1 1 3

Sample Output 1

1

Sample Input 2

5 5
3 2 3 0 0
4 2 0 0 2

Sample Output 2

0
Common-Prime Sort

You are now examining a unique method to sort a sequence of numbers in increasing order. The method only allows swapping of two numbers that have a common prime factor. For example, a sequence [6, 4, 2, 3, 7] can be sorted using the following steps.

Step 0: 6 4 2 3 7 (given sequence)

Step 1: 2 4 6 3 7 (elements 6 and 2 swapped)

Step 2: 2 6 4 3 7 (elements 4 and 6 swapped)

Step 3: 2 3 4 6 7 (elements 6 and 3 swapped)

Depending on the nature of the sequence, however, this approach may fail to complete the sorting. You have given a name "Coprime sort" to this approach and are now examining if a given sequence is coprime-sortable.

Make a program to determine if a given sequence can be sorted in increasing order by iterating an arbitrary number of swapping operations of two elements that have a common prime number.

Input

The input is given in the following format.

$N$
$a_1$ $a_2$ $...$ $a_N$

The first line provides the number of elements included in the sequence $N$ ($2 \leq N \leq 10^5$). The second line provides an array of integers $a_i$ ($2 \leq a_i \leq 10^5$) that constitute the sequence.

Output

Output "1" if the sequence is coprime-sortable in increasing order, or "0" otherwise.

Sample Input 1

5
6 4 2 3 7

Sample Output 1

1

Sample Input 2

7
2 9 6 5 6 7 3

Sample Output 2

0
Beautiful Sequence

Alice is spending his time on an independent study to apply to the Nationwide Mathematics Contest. This year’s theme is "Beautiful Sequence." As Alice is interested in the working of computers, she wants to create a beautiful sequence using only 0 and 1. She defines a "Beautiful" sequence of length $N$ that consists only of 0 and 1 if it includes $M$ successive array of 1s as its sub-sequence.

Using his skills in programming, Alice decided to calculate how many "Beautiful sequences" she can generate and compile a report on it.

Make a program to evaluate the possible number of "Beautiful sequences" given the sequence length $N$ and sub-sequence length $M$ that consists solely of 1. As the answer can be extremely large, divide it by $1,000,000,007 (= 10^9 + 7)$ and output the remainder.

Input

The input is given in the following format.

$N$ $M$

The input line provides the length of sequence $N$ ($1 \leq N \leq 10^5$) and the length $M$ ($1 \leq M \leq N$) of the array that solely consists of 1s.

Output

Output the number of Beautiful sequences in a line.

Sample Input 1

4 3

Sample Output 1

3

The sequences with length 4 that include 1s in successive array of length 3 are: 0111, 1110 and 1111.

Sample Input 2

4 2

Sample Output 2

8

The sequences with length 4 that include 1s in successive array of length 2 are: 0011, 0110, 0111, 1011, 1100, 1101, 1110 and 1111.
Payroll

PCK company has $N$ salaried staff and they have specific ID numbers that run from $0$ to $N-1$. The company provides $N$ types of work that are also identified by ID numbers from $0$ to $N-1$. The time required to complete work $j$ is $t_j$.

To get each of the working staff to learn as many types of work as possible, the company shifts work assignment in the following fashion.

On the $d$-th day of a shift (the first day is counted as $0$th day), work $j$ is assigned to the staff $(j + d) \% N$, where the notation $p \% q$ indicates the remainder when $p$ is divided by $q$.

Salaries in the PCK company are paid on a daily basis based on the hourly rate. When a staff whose hourly rate is $a$ carries out work $j$, his/her salary will amount to $a \times t_j$. The initial hourly rate for a staff $i$ is $s_i$ yen. To boost staff’s motivation, the company employs a unique scheme for raising hourly rates. The promotion scheme table of the company contains a list of factors $f_k$ ($0 \leq k \leq M-1$), and the hourly rate of a staff is raised based on the following rule.

At the completion of the $d$-th day’s work (the first day is counted as the $0$th day), the hourly rate of the staff with ID number $d \% N$ is raised by $f_{(d \% M)}$ yen. The salary raise takes effect after the day’s pay has been made.

As the person in charge of accounting in PCK company, you have to calculate the total amount of pay for $D$ days from the $0$-th day.

Make a program to work out the total amount of salary given the following information: initial hourly rate of each staff, hours required to complete a job, a table of promotion coefficients, and the number of days. Because the total may become excessively large, report the remainder when the total salary amount is divided by $1,000,000,007(= 10^9 + 7)$.

Input

The input is given in the following format.

$N$ $M$ $D$
$s_0$ $s_1$ $...$ $s_{N-1}$
$t_0$ $t_1$ $...$ $t_{N-1}$
$f_0$ $f_1$ $...$ $f_{M-1}$

The first line provides the number of working staff and types of work $N$ ($1 \leq N \leq 100$), the number of factors $M$ ($1 \leq M \leq 100$)and the number of days $D$ ($1 \leq D \leq 10^{15}$). Note that $M + N$ is equal to or less than 100. The second line provides the initial hourly rate for each staff $s_i$ ($1 \leq s_i \leq 10^8$) as integers. The third line provides the hours $t_j$ ($1 \leq t_j \leq 10^8$) required to complete each type of job as integers. The fourth line lists the factors $f_k$ ($1 \leq f_k \leq 10^8$) in the promotion scheme table.

Output

Output the total amount of the salary.

Sample Input 1

3 2 2
3 2 1
1 2 3
1 2

Sample Output 1

26

Sample Input 2

3 2 5
3 2 1
1 2 3
1 2

Sample Output 2

91
Playing with Stones

Koshiro and Ukiko are playing a game with black and white stones. The rules of the game are as follows:

Before starting the game, they define some small areas and place "one or more black stones and one or more white stones" in each of the areas.

Koshiro and Ukiko alternately select an area and perform one of the following operations.

(a) Remove a white stone from the area

(b) Remove one or more black stones from the area. Note, however, that the number of the black stones must be less than or equal to white ones in the area.

(c) Pick up a white stone from the stone pod and replace it with a black stone. There are plenty of white stones in the pod so that there will be no shortage during the game.

If either Koshiro or Ukiko cannot perform 2 anymore, he/she loses.

They played the game several times, with Koshiro’s first move and Ukiko’s second move, and felt the winner was determined at the onset of the game. So, they tried to calculate the winner assuming both players take optimum actions.

Given the initial allocation of black and white stones in each area, make a program to determine which will win assuming both players take optimum actions.

Input

The input is given in the following format.

$N$
$w_1$ $b_1$
$w_2$ $b_2$
:
$w_N$ $b_N$

The first line provides the number of areas $N$ ($1 \leq N \leq 10000$). Each of the subsequent $N$ lines provides the number of white stones $w_i$ and black stones $b_i$ ($1 \leq w_i, b_i \leq 100$) in the $i$-th area.

Output

Output 0 if Koshiro wins and 1 if Ukiko wins.

Sample Input 1

4
24 99
15 68
12 90
95 79

Sample Output 1

0

Sample Input 1

3
2 46
94 8
46 57

Sample Output 2

1
K-th Exclusive OR

Exclusive OR (XOR) is an operation on two binary numbers $x$ and $y$ (0 or 1) that produces 0 if $x = y$ and $1$ if $x \ne y$. This operation is represented by the symbol $\oplus$. From the definition: $0 \oplus 0 = 0$, $0 \oplus 1 = 1$, $1 \oplus 0 = 1$, $1 \oplus 1 = 0$.

Exclusive OR on two non-negative integers comprises the following procedures: binary representation of the two integers are XORed on bit by bit bases, and the resultant bit array constitute a new integer. This operation is also represented by the same symbol $\oplus$. For example, XOR of decimal numbers $3$ and $5$ is equivalent to binary operation $011 \oplus 101$ which results in $110$, or $6$ in decimal format.

Bitwise XOR operation on a sequence $Z$ consisting of $M$ non-negative integers $z_1, z_2, . . . , z_M$ is defined as follows:

$v_0 = 0, v_i = v_{i - 1} \oplus z_i$ ($1 \leq i \leq M$)

Bitwise XOR on series $Z$ is defined as $v_M$.

You have a sequence $A$ consisting of $N$ non-negative integers, ample sheets of papers and an empty box. You performed each of the following operations once on every combinations of integers ($L, R$), where $1 \leq L \leq R \leq N$.

Perform the bitwise XOR operation on the sub-sequence (from $L$-th to $R$-th elements) and name the result as $B$.

Select a sheet of paper and write $B$ on it, then put it in the box.

Assume that ample sheets of paper are available to complete the trials. You select a positive integer $K$ and line up the sheets of paper inside the box in decreasing order of the number written on them. What you want to know is the number written on the $K$-th sheet of paper.

You are given a series and perform all the operations described above. Then, you line up the sheets of paper in decreasing order of the numbers written on them. Make a program to determine the $K$-th number in the series.

Input

The input is given in the following format.

$N$ $K$
$a_1$ $a_2$ ... $a_N$

The first line provides the number of elements in the series $N$ ($1 \leq N \leq 10^5$) and the selected number $K$ ($1 \leq K \leq N(N+1)/2$). The second line provides an array of elements $a_i$ ($0 \leq a_i \leq 10^6$).

Sample Input 1

3 3
1 2 3

Sample Output 1

2

After all operations have been completed, the numbers written on the paper inside the box are as follows (sorted in decreasing order)

$3,3,2,1,1,0$

3番目の数は2であるため、2を出力する。

Sample Input 2

7 1
1 0 1 0 1 0 1

Sample Output 2

1

Sample Input 3

5 10
1 2 4 8 16

Sample Output 3

7
Road Construction

The Zuia Kingdom has finally emerged through annexation of $N$ cities, which are identified by index from $1$ to $N$. You are appointed the Minister of Transport of the newly born kingdom to construct the inter-city road network.

To simplify the conceptual design planning, you opted to consider each city as a point on the map, so that the $i$-th city can be represented by an coordinate ($x_i, y_i$).

The cost of road construction connecting $u$-th and $v$-th cities is equal to the distance $|x_u - x_v|$ or $|y_u - y_v|$, whichever the larger. The notation $|A|$ represents the absolute value of $A$. The object here is to explore the minimum cost required to construct the road network in such a way that people can move between different cities along one or more roads.

Make a program to calculate the minimum of total road construction cost from the number of cities and their coordinates.

Input

The input is given in the following format.

$N$
$x_1$ $y_1$
$x_2$ $y_2$
...
$x_N$ $y_N$

The first line provides the number of cities $N$ ($2 \leq N \leq 10^5$). Each of the subsequent $N$ lines provides the coordinate of the $i$-th city $x_i, y_i$ ($0 \leq x_i, y_i \leq 10^9$) as integers. Note that none of these coordinates coincides if: $i \ne j$, then $x_i \ne x_j$ or $y_i \ne y_j$.

Output

Output the minimum road construction cost.

Sample Input 1

3
1 2
3 4
10 1

Sample Output 1

9

The road connecting city 1 and 2 can be constructed at the cost of 2, and that connecting city 2 and 3 at the cost of 7. Therefore, the total cost becomes 9, which is the minimum.

Sample Input 2

3
1 2
3 4
3 2

Sample Output 2

4

Sample Input 3

5
7 41
10 0
99 27
71 87
14 25

Sample Output 3

163
柴犬の数

イヅア公園には、夕方になると柴犬と散歩する人たちがたくさん来ます。柴犬には毛の色によって赤柴、黒柴、白柴、胡麻柴という種類があります。柴犬がたくさんいるとうれしいトモエちゃんは、それぞれの毛色の柴犬が何頭いるかがんばって数えましたが、まだ足し算ができないので柴犬が全部で何頭いるかわかりません。

それぞれの毛色の柴犬の数が与えられたときに、柴犬の総数を計算するプログラムを作成せよ。

入力

入力は以下の形式で与えられる。

$R$ $B$ $W$ $G$

１行に赤柴の数$R$ ($1 \leq R \leq 100$)、黒柴の数$B$ ($1 \leq B \leq 100$)、白柴の数$W$ ($1 \leq W \leq 100$)、胡麻柴の数$G$ ($1 \leq G \leq 100$)が与えられる。

出力

柴犬の総数を１行に出力する。

入出力例

入力例１

4 2 1 1

出力例１

8

入力例２

22 18 34 36

出力例２

110
アスキー文字

コンピュータの内部ではすべての情報が数値として扱われています。たとえば、アスキーコードでは、アルファベットの大文字Aに数値の65が割り当てられています。同様にアルファベットの大文字Bに66、Cに67というように、AからZには連続してそれぞれ65から90が割り当てられています。また、アスキーコードでは、アルファベットの小文字aに97が割り当てられています。同様にアルファベットの小文字bに98、cに99というように、aからzには連続してそれぞれ97から122が割り当てられています。

与えられたアスキーコードの数値が、アルファベットの大文字と小文字のどちらを表すか判定するプログラムを作成せよ。

入力

入力は以下の形式で与えられる。

$N$

１行に数値$N$ ($0 \leq N \leq 127$)が与えられる。

出力

大文字なら「1」を、小文字なら「2」を、それ以外なら「0」を１行に出力する。

入出力例

入力例１

67

出力例１

1

入力例２

110

出力例２

2

入力例３

32

出力例３

0
２の累乗

与えられた数を、それ以下の数の中で最大の$2$の累乗に変換してください。たとえば、$2$や$3$ならば$2^1=2$に変換してください。同様に$4$,$5$,$6$,$7$ならば$2^2=4$に、$8$,$9$,$10$,$11$,...,$15$ならば$2^3=8$に変換してください。

与えられた数を、その数以下の数の中で最大の$2$の累乗に変換するプログラムを作成せよ。

入力

入力は以下の形式で与えられる。

$N$

１行に数$N$ ($2 \leq N \leq 10^6$)が与えられる。

出力

変換した数を１行に出力する。

入出力例

入力例１

54

出力例１

32

入力例２

1024

出力例２

1024
集会所

イヅア村の住民は村に集会所を建てることにしました。この村では東西に一直線に伸びる道路に沿って建物を建てられる地点が決まっています。最も西の地点を０番目の地点として、そこから等間隔に東に向かって１番目、２番目、…と地点番号が与えられています。村人の家と集会所を建てることができるのは、これらの地点だけです。各家には１人以上の村人が住んでいます。どの村人も隣の地点まで１分間で移動できます。

集会を開くのに便利なように、ある時刻に一斉に全ての村人が自分の家から集会所に向かったとき、全員が集まるのに必要な時間が最小になるような場所に、集会所を建てることにしました。

家の建っている地点の番号が与えられたときに、全ての村人が集会所に集まるのに必要な時間の最小値を計算するプログラムを作成せよ。ただし、集会所の地点番号が家の地点番号と重複してもよいものとする。

入力

入力は以下の形式で与えられる。

$N$
$x_1$ $x_2$ ... $x_N$

１行目に家の数$N$ ($1 \leq N \leq 1000$)が与えられる。２行目に家の建っている地点番号$x_i$ ($0 \leq x_i \leq 2000$)が与えられる。ただし、家の地点番号は全て異なる($i \ne j$について$x_i \ne x_j$である)。

出力

集会所に集まるのに必要な最小の時間を分単位で１行に出力する。

入出力例

入力例１

3
4 0 1

出力例１

2

入力例２

2
1 2

出力例２

1
ねこのあな

あなたの家の近所には多くの猫が出入りする横穴があります。中は行き止まりで通り抜けることはできませんが、近所の猫が全部入れるくらいの奥行きがあります。穴の幅は猫がちょうど収まるくらいなので、先に入った猫を後から入った猫が押しのけて奥に向かうことはできません。また、先に入った猫が、後から入ってきた猫を押しのけて出口から出ることもできません。

猫好きのあなたは横穴に出入りする猫を順番に記録していきました。記録をはじめたときは横穴の中には一匹も猫はいませんでしたが、やがて猫たちは横穴への出入りを始めました。同じ猫が何度も出入りすることもありました。

記録を終えたあなたは、正しく記録できたかプログラムを書いてチェックすることにしました。

横穴に出入りした猫のリストが与えられる。リストを先頭から順に見ていったとき、それより後ろを見なくても誤りと判断できる最初の位置を求めるプログラムを作成せよ。ただし、猫は100匹いて、1から100までの番号が与えられているものとする。

入力

入力は以下の形式で与えられる。

$L$
$c_1$ $c_2$ ... $c_L$

１行目に横穴に出入りした猫のリストの長さ$L$ ($1 \leq L \leq 1000$)が与えられる。続く１行に、$i$番目に横穴に出入りした猫の情報$c_i$ ($-100 \leq c_i \leq 100$, ただし$c_i≠0$)が与えられる。ただし、$i$番目に出入りした猫の番号が$a$で、その猫が横穴に入ったときは$c_i=a$、横穴から出たときは$c_i=-a$である。

出力

リストを先頭から順に見ていったとき、それより後ろを見なくても誤りと判断できる最初の位置を１行に出力する。誤りがない場合は、「OK」を１行に出力する。

入出力例

入力例１

4
1 2 -3 -1

出力例１

3

入力例２

6
2 1 2 -2 -1 -2

出力例２

3

入力例３

5
2 1 -1 3 -3

出力例３

OK
床

ヒデヨ博士の家の床には正方形のタイルが敷きつめられています。芸術に造詣が深いヒデヨ博士は、赤、黄、青の塗料を使ってタイルに色を塗ることにしました。はじめに部屋の適当なタイルをひとつ選び、以下の方法で色を塗っていきます。

タイルを塗る色を、赤（図の番号１）、黄（図の番号２）、青（図の番号３）の順に変えていき、青の次はまた赤から始める。

すでに色を塗った領域の隣に正方形を追加し、そこに色を塗る。それらを合わせた領域が長方形になるようにする。正方形を追加する方向は、東、北、西、南の順に変えていき、南の次はまた東から始める（図では、上方向が北、右方向が東である）。

最初に赤く塗ったタイルから東西方向に$x$個、南北方向に$y$個移動したところにあるタイルは、何色に塗られているでしょうか。ただし、東の方向を$x$の正の方向、北の方向を$y$の正の方向とします。

$x$と$y$を入力し、タイルの色を出力するプログラムを作成せよ。

入力

入力は以下の形式で与えられる。

$x$ $y$

１行に$x$と$y$ ($-10^6 \leq x,y \leq 10^6$)が与えられる。

出力

タイルの色が赤のとき1、黄のとき2、青のとき3を１行に出力する。

入出力例

入力例１

0 0

出力例１

1

入力例２

-4 5

出力例２

2

入力例３

8 -14

出力例３

3
アカベコ２０

「アカベコ２０」は、イヅア地方の専用劇場で公演を開催しているグループです。アカベコ２０のそれぞれのメンバーは、ある一定の日数ごとに公演に参加することになっています。

今日の公演ではメンバーが全員参加していました。プロデューサーであるあなたは、メンバーから、今後の公演のメンバーの組み合わせを教えてほしい、と頼まれました。あなたは、公演に参加するメンバーの組み合わせがいくつあるのかを数えることにしました。

アカベコ２０のメンバー数と、それぞれのメンバーが公演に参加する周期が１日単位で与えられたとき、参加するメンバーの組み合わせが何通りあるかを数えるプログラムを作成せよ。このとき、グループは同じメンバーで永遠に存続すると仮定する。ただし、だれも参加しない場合は組み合わせに含めないこととする。

入力

入力は以下の形式で与えられる。

$N$
$p_1$ $p_2$ ... $p_N$

１行目にアカベコ２０のメンバー数$N$ ($1 \leq N \leq 20$)が与えられる。続く１行に、それぞれのメンバーが公演に参加する周期$p_i$ ($1 \leq p_i \leq 40$)が与えられる。

出力

参加するメンバーの組み合わせの数を１行に出力する。

入出力例

入力例１

3
3 5 2

出力例１

7

入力例２

3
2 3 6

出力例２

3

周期が２日のメンバーのみが参加する公演，周期が３日のメンバーのみが参加する公演，周期が２日、３日、６日のメンバーが参加する公演の３通りとなる。
矢印

$L$個のマスが左右に一列に並んでいます。いくつかのマスの上に駒が置いてあります。駒には左向きか右向きの矢印が書いてあります。なお、一つのマスに二つ以上の駒を置くことはできません。

どのマスにいる駒も、駒が置かれていないマスに動かすことができます。ただし、一度に動けるのは隣のマスまでで、一度に動かせるのは一つの駒だけです。駒は、矢印の向きにかかわらず、左にも右にも動かすことができます。ただし、駒を矢印の方向に一回動かすと点数が１点もらえますが、矢印とは逆方向に一回動かすと１点減点されてしまいます。なお、どのような状況から始めたとしても、得られる点数には必ず最大値があることがわかっています。

マスの個数と駒の状況が与えられたとき、得られる最大の点数を計算するプログラムを作成せよ。ただし、マスには列の左端から順番に1から$L$までの番号が割り当てられているものとする。

入力

入力は以下の形式で与えられる。

$N$ $L$
$p_1$ $d_1$
$p_2$ $d_2$
:
$p_N$ $d_N$

１行目に駒の数$N$ ($1 \leq N \leq 10^5$)とマスの数$L$ ($N \leq L \leq 10^9$)が与えられる。続く$N$行に駒が置かれたマスの番号$p_i$ ($1 \leq p_i \leq L$)と駒に書かれた矢印の向き$d_i$ (0または1)が与えられる。ただし、$d_i$が0のときは矢印が左向き、1のときは右向きを表す。同じマスの番号は与えられない（$i \ne j$について、$p_i \ne p_j$）。

出力

得られる最大の点数を１行に出力する。

入出力例

入力例１

2 10
3 0
6 1

出力例１

6

入力例２

2 8
2 1
8 0

出力例２

5

入力例３

2 8
1 0
8 1

出力例３

0
天空の城ツルガ

天空の城ツルガはアイヅ国の上空に浮かんでいる。アイヅ国では、天空の城ツルガによって日光がさえぎられる日もある。日光が当たらない日があった場所の住人には、その日数に応じて補償金を支払っている。アイヅ国の補償金支払い担当者であるあなたは、天空の城ツルガの日ごとの位置と補償金の申請があった場所のリストから、その日にその場所で日光が当たらなかったことを確かめる必要がある。

天空の城ツルガの場所とアイヅ国の地上のある場所が与えられたとき、その日にその場所が影に入っていたかどうかを判定するプログラムを作成せよ。影の中に入っていたかどうかは、ある特定の時刻で判定するので、天空の城ツルガや太陽の移動については考えなくて良い。太陽の位置は$x=y=0,z=10^6$にある大きさのない点であり、天空の城ツルガは$z=100$の平面にある凸多角形、地上の場所は$z=0$にある大きさのない点とする。また、ある地点と太陽を結ぶ直線を天空の城ツルガがさえぎるとき、その地点は影に入るものとする。

入力

入力は以下の形式で与えられる。

$N$
$xt_1$ $yt_1$
$xt_2$ $yt_2$
:
$xt_N$ $yt_N$
$Q$
$xa_1$ $ya_1$
$xa_2$ $ya_2$
:
$xa_Q$ $ya_Q$

１行目に天空の城ツルガの領域を表す点の数$N$ ($3 \leq N \leq 3 \times 10^4$)が与えられる。続く$N$行に、領域を構成する頂点の座標$xt_i$,$yt_i$ ($-10^8 \leq xt_i,yt_i \leq 10^8$)が領域の重心の周りに反時計回りに整数で与えられる。ただし、同じ座標をもつ頂点は与えられない（$i \ne j$について、$xt_i \ne xt_j$ または $yt_i \ne yt_j$）。また、領域の面積は0より大きいと考えて良い。続く１行に、補償金の申請があった場所の数$Q$ ($1 \leq Q \leq 6 \times 10^4$)が与えられる。続く$Q$行に、補償金の申請があった場所の座標$xa_i$,$ya_i$ ($-10^8 \leq xa_i,ya_i \leq 10^8$)が整数で与えられる。ただし、補償金の申請があった場所の座標は、天空の城ツルガの影の輪郭線から距離$10^{-3}$以上離れていると考えて良い。

出力

補償金の申請があった各場所について、影に入っていたら「1」、入っていなかったら「0」を１行に出力する。

入出力例

入力例１

6
0 0
4 0
6 3
5 5
1 5
0 3
5
2 2
6 6
3 1
5 1
-1 -1

出力例１

1
0
1
0
0

入力例２

4
100000 100000
101000 100000
101000 101000
100000 101000
2
100005 100005
101005 101005

出力例２

0
1
トーナメントの記録

トーナメントが終わって優勝者が決まるまで、記録係のあなたは対戦の勝者と敗者を記録しました。あなたは対戦ごとに１枚の紙を使って正しく記録しましたが、記録した紙の順序がいくつか入れ替わった可能性があります。

順序が入れ替わった可能性のある対戦の記録から、あり得る対戦の順番が何通りあるかを求めるプログラムを作成せよ。ただし、トーナメントの参加者には1から$N$までの番号が割り当てられているものとする。

入力

入力は以下の形式で与えられる。

$N$
$a_1$ $b_1$
$a_2$ $b_2$
:
$a_{N-1}$ $b_{N-1}$

１行目に出場者の数$N$ ($2 \leq N \leq 1000$)が与えられる。続く$N-1$行に、試合の勝者と敗者の記録$a_i$,$b_i$ ($1 \leq a_i,b_i \leq N$)が与えられる。ただし、$a_i$が勝者、$b_i$が敗者を表す。

出力

あり得る対戦の順番が何通りあるかを表す数を$10^6$で割った余りを１行に出力する。

入出力例

入力例１

3
1 2
1 3

出力例１

2

入力例２

3
2 1
1 3

出力例２

1
イワシロの祈り

古代国家イワシロでは、災害が起きたときにそれを鎮めるために、神官が祈りをささげます。

神官は古文書から文字列Sを選び、以下を繰り返すことで儀式を進めていきます。

文字列$S$の中の場所を一つ選び、そこに書かれた文字を他の文字に入れ替えて、$S$を更新する。

$S$がどのような文字列の繰り返しで表せるかを見つけて、見つけた文字列を唱える。ただし、$S$が文字列の繰り返しで表せないときは$S$を唱える。

祈りの効力が最大になるのは、最も短い文字列の繰り返しで元の文字列を表すものを唱えたときです。たとえば、ababababという文字列に対して、この文字列そのものやababではなく、abと唱えたときに祈りの効力が最大になります。

新米神官のあなたは、与えられた文字列$S$から祈りの効力を最大にする文字列を素早く見つける方法を会得しなければなりません。

文字列$S$と文字の入れ替えの情報がいくつか与えられる。文字を入れ替えるたびに、得られた文字列について祈りの効力を最大にする文字列の長さを求めるプログラムを作成せよ。

入力

入力は以下の形式で与えられる。

$N$ $Q$
$S$
$p_1$ $c_1$
$p_2$ $c_2$
:
$p_Q$ $c_Q$

１行目に文字列の長さ$N$ ($2 \leq N \leq 10^5$)と文字を入れ替える回数$Q$ ($1 \leq Q \leq 10^5$)が与えられる。２行目に英小文字からなる長さ$N$の文字列$S$が与えられる。続く$Q$行に、$i$番目に入れ替える文字の位置$p_i$ ($1 \leq p_i \leq N$)と入れ替えた後の文字$c_i$が与えられる。ただし、$p_i$は文字列の左端から数えて何番目かで表される。また、$c_i$は英小文字である。

出力

文字を入れ替えるたびに、得られる文字列について祈りの効力を最大にする文字列の長さを１行に出力する。

入出力例

入力例

6 5
ababac
6 b
3 c
4 a
5 b
6 c

出力例

2
6
6
6
3
ダンジョン３

あなたは有名な冒険家であり、すでに２つのダンジョンを制覇した。あなたはいくつかの通路と宝物庫が記された新たなダンジョンの地図を入手した。地図にはそれぞれの宝物庫にある財宝の価値が書かれている。

あなたは、任意の宝物庫からダンジョンに侵入し、任意の宝物庫からダンジョンを脱出することができる。侵入から脱出までの間に、通路を通って宝物庫の間を何度か移動して、訪れた宝物庫の財宝を手に入れることができる。地図によれば、各通路は双方向に通ることができ、どの宝物庫からどの宝物庫にも１本以上の通路を経由してたどりつくことができる。しかし、通路は一度通ると二度目以降は一度目と同じ向きにしか通ることができなくなる。宝物庫の財宝は、そこを最初に訪れたときだけ手に入れることができる。このとき、手にする財宝の価値の総和を最大にしたい。

地図の情報が与えられたとき、侵入から脱出までの間に手にいれることのできる財宝の価値の総和の最大値を求めるプログラムを作成せよ。ただし、宝物庫には1からNまでの番号が割り当てられているものとする。

入力

入力は以下の形式で与えられる。

$N$ $M$
$v_1$
$v_2$
:
$v_N$
$s_1$ $t_1$
$s_2$ $t_2$
:
$s_M$ $t_M$

１行目に宝物庫の数$N$ ($2 \leq N \leq 10^5$)と通路の数$M$ ($1 \leq M \leq 2 \times 10^5$)が与えられる。続く$N$行に、$i$番目の宝物庫に置かれている財宝の価値$v_i$ ($1 \leq v_i \leq 1000$)が与えられる。続く$M$行に、それぞれの通路の両端に接続されている宝物庫の番号$s_i$,$t_i$ ($1 \leq s_i,t_i \leq N, s_i \ne t_i$)が与えられる。ただし、同じ宝物庫同士をつなぐ通路は２度以上与えられない。

出力

得ることができる財宝の価値の総和の最大値を１行に出力する。

入出力例

入力例

5 4
2
1
3
6
4
1 2
2 3
2 4
4 5

出力例

14
目盛りのないストップウォッチ

図のようなストップウォッチがあります。このストップウォッチには０を示す目印が一つあるだけで、目盛りがありません。起動した瞬間、針は目印を指し、そこから針は軸を中心に一定の割合で時計回りに回転します。目盛りがないので、起動からの経過時間を直接読み取ることはできません。その代わり、針が目印から時計回りに$a$度回ったときの経過時間が$t$秒であることがわかっています。ただし、$a$は360度未満とします。

角度$a$と経過時間$t$が与えられたとき、ストップウォッチ起動後に読み取った針の角度rが表す経過時間を求めるプログラムを作成せよ。ただし、針が１周していないことはわかっているものとする。

入力

入力は以下の形式で与えられる。

$a$ $t$ $r$

１行に角度$a$ ($1 \leq a \leq 359$)と角度$a$のときの経過時間$t$ ($1 \leq t \leq 1,000$)、読み取った角度$r$ ($0 \leq r \leq 359$)がすべて整数で与えられる。ただし、$a$と$r$の単位は度、$t$の単位は秒とする。

出力

読み取った針の角度が表す経過時間を秒で１行に実数で出力する。ただし、誤差がプラスマイナス0.001を超えてはならない。

入出力例

入力例１

180 120 90

出力例１

60.0

入力例２

90 100 120

出力例２

133.333333