alexjercan/bugnet huggingface dataset:
Problem F. Nim without Zero

Alice: "Hi, Bob! Let's play Nim!"

Bob: "Are you serious? I don't want to play it. I know how to win the game."

Alice: "Right, there is an algorithm to calculate the optimal move using XOR. How about changing the rule so that a player loses a game if he or she makes the XOR to $0$?"

Bob: "It sounds much better now, but I suspect you know the surefire way to win."

Alice: "Do you wanna test me?"

This game is defined as follows.

The game starts with $N$ heaps where the $i$-th of them consists of $a_i$ stones.

A player takes any positive number of stones from any single one of the heaps in one move.

Alice moves first. The two players alternately move.

If the XOR sum, $a_1$ XOR $a_2$ XOR $...$ XOR $a_N$, of the numbers of remaining stones of these heaps becomes $0$ as a result of a player's move, the player loses.

Your task is to find which player will win if they do the best move.

Input

The input consists of a single test case in the format below.

$N$
$a_1$
$\vdots$
$a_N$

The first line contains an integer $N$ which is the number of the heaps ($1 \leq N \leq 10^5$). Each of the following $N$ lines gives the number of stones in each heap ($1 \leq a_i \leq 10^9$).

Output

Output the winner, Alice or Bob, when they do the best move.

Examples

Sample Input 1

2
1
1

Output for Sample Input 1

Alice

Sample Input 2

5
1
2
3
4
5

Output for Sample Input 2

Bob

Sample Input 3

10
1
2
3
4
5
6
7
8
9
10

Output for Sample Input 3

Alice

In the first example, the XOR sum is 0 in the initial state, but the game is going because nobody moves yet. First Alice takes a stone and the XOR sum becomes 1, then Bob takes the last stone and the XOR sum becomes 0. Therefore, Alice will win, and Bob will lose.
Problem G. Additions

You are given an integer $N$ and a string consisting of '+' and digits. You are asked to transform the string into a valid formula whose calculation result is smaller than or equal to $N$ by modifying some characters. Here, you replace one character with another character any number of times, and the converted string should still consist of '+' and digits. Note that leading zeros and unary positive are prohibited.

For instance, '0123+456' is assumed as invalid because leading zero is prohibited. Similarly, '+1+2' and '2++3' are also invalid as they each contain a unary expression. On the other hand, '12345', '0+1+2' and '1234+0+0' are all valid.

Your task is to find the minimum number of the replaced characters. If there is no way to make a valid formula smaller than or equal to $N$, output $-1$ instead of the number of the replaced characters.

Input

The input consists of a single test case in the following format.

$N$
$S$

The first line contains an integer $N$, which is the upper limit of the formula ($1 \leq N \leq 10^9$). The second line contains a string $S$, which consists of '+' and digits and whose length is between $1$ and $1,000$, inclusive. Note that it is not guaranteed that initially $S$ is a valid formula.

Output

Output the minimized number of the replaced characters. If there is no way to replace, output $-1$ instead.

Examples

Sample Input 1

100
+123

Output for Sample Input 1

2

Sample Input 2

10
+123

Output for Sample Input 2

4

Sample Input 3

1
+123

Output for Sample Input 3

-1

Sample Input 4

10
++1+

Output for Sample Input 4

2

Sample Input 5

2000
1234++7890

Output for Sample Input 5

2

In the first example, you can modify the first two characters and make a formula '1+23', for instance. In the second example, you should make '0+10' or '10+0' by replacing all the characters. In the third example, you cannot make any valid formula less than or equal to $1$.
Problem H. Enlarge Circles

You are given $N$ distinct points on the 2-D plane. For each point, you are going to make a single circle whose center is located at the point. Your task is to maximize the sum of perimeters of these $N$ circles so that circles do not overlap each other. Here, "overlap" means that two circles have a common point which is not on the circumference of at least either of them. Therefore, the circumferences can be touched. Note that you are allowed to make a circle with radius $0$.

Input

The input consists of a single test case in the following format.

$N$
$x_1$ $y_1$
$\vdots$
$x_N$ $y_N$

The first line contains an integer $N$, which is the number of points ($2 \leq N \leq 200$). Each of the following $N$ lines gives the coordinates of a point. Integers $x_i$ and $y_i$ ($-100 \leq x_i, y_i \leq 100$) in the $i$-th line of them give the $x$- and $y$-coordinates, respectively, of the $i$-th point. These points are distinct, in other words, $(x_i,y_i) \ne (x_j, y_j)$ is satisfied if $i$ and $j$ are different.

Output

Output the maximized sum of perimeters. The output can contain an absolute or a relative error no more than $10^{-6}$.

Examples

Sample Input 1

3
0 0
3 0
5 0

Output for Sample Input 1

31.415926535

Sample Input 2

3
0 0
5 0
0 5

Output for Sample Input 2

53.630341225

Sample Input 3

9
91 -18
13 93
73 -34
15 2
-46 0
69 -42
-23 -13
-87 41
38 68

Output for Sample Input 3

1049.191683488
Problem I. Sum of QQ

You received a card with an integer $S$ and a multiplication table of infinite size. All the elements in the table are integers, and an integer at the $i$-th row from the top and the $j$-th column from the left is $A_{i,j} = i \times j$ ($i,j \geq 1$). The table has infinite size, i.e., the number of the rows and the number of the columns are infinite.

You love rectangular regions of the table in which the sum of numbers is $S$. Your task is to count the number of integer tuples $(a, b, c, d)$ that satisfies $1 \leq a \leq b, 1 \leq c \leq d$ and $\sum_{i=a}^b \sum_{j=c}^d A_{i,j} = S$.

Input

The input consists of a single test case of the following form.

$S$

The first line consists of one integer $S$ ($1 \leq S \leq 10^5$), representing the summation of rectangular regions you have to find.

Output

Print the number of rectangular regions whose summation is $S$ in one line.

Examples

Sample Input 1

25

Output for Sample Input 1

10

Sample Input 2

1

Output for Sample Input 2

1

Sample Input 3

5

Output for Sample Input 3

4

Sample Input 4

83160

Output for Sample Input 4

5120
Problem J. Prime Routing

Fox Jiro is one of the staffs of the ACM-ICPC 2018 Asia Yokohama Regional Contest and is responsible for designing the network for the venue of the contest. His network consists of $N$ computers, which are connected by $M$ cables. The $i$-th cable connects the $a_i$-th computer and the $b_i$-th computer, and it carries data in both directions. Your team will use the $S$-th computer in the contest, and a judge server is the $T$-th computer.

He decided to adjust the routing algorithm of the network to maximize the performance of the contestants through the magical power of prime numbers. In this algorithm, a packet (a unit of data carried by the network) is sent from your computer to the judge server passing through the cables a prime number of times if possible. If it is impossible, the contestants cannot benefit by the magical power of prime numbers. To accomplish this target, a packet is allowed to pass through the same cable multiple times.

You decided to write a program to calculate the minimum number of times a packet from $S$ to $T$ needed to pass through the cables. If the number of times a packet passes through the cables cannot be a prime number, print $-1$.

Input

The input consists of a single test case, formatted as follows.

$N$ $M$ $S$ $T$
$a_1$ $b_1$
$\vdots$
$a_M$ $b_M$

The first line consists of four integers $N, M, S,$ and $T$ ($2 \leq N \leq 10^5, 1 \leq M \leq 10^5, 1 \leq S, T \leq N, S \ne T$). The $i$-th line of the following $M$ lines consists of two integers $a_i$ and $b_i$ ($1 \leq a_i < b_i \leq N$), which means the $i$-th cables connects the $a_i$-th computer and the $b_i$-th computer in the network. You can assume that the network satisfies the following conditions.

The network has no multi-edge, i.e.,$(a_i, b_i) \ne (a_j, b_j)$ for all $i,j$ ($1 \leq i < j \leq M$).

The packets from $N$ computers are reachable to $T$ by passing through some number of cables. The number is not necessarily a prime.

Output

If there are ways such that the number of times a packet sent from $S$ to $T$ passes through the cables is a prime number, print the minimum prime number of times in one line. Otherwise, print $-1$.

Examples

Sample Input 1

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

Output for Sample Input 1

3

Sample Input 2

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

Output for Sample Input 2

-1

Sample Input 3

2 1 1 2
1 2

Output for Sample Input 3

3

Sample Input 4

3 3 1 2
1 2
1 3
2 3

Output for Sample Input 4

2
Problem K. Rough Sorting

For skilled programmers, it is very easy to implement a sorting function. Moreover, they often avoid full sorting to reduce computation time if it is not necessary. Here, we consider "rough sorting" which sorts an array except for some pairs of elements. More formally, we define an array is "$K$-roughly sorted" if an array is sorted except that at most $K$ pairs are in reversed order. For example, '1 3 2 4' is 1-roughly sorted because (3, 2) is only the reversed pair. In the same way, '1 4 2 3' is 2-roughly sorted because (4, 2) and (4, 3) are reversed.

Considering rough sorting by exchanging adjacent elements repeatedly, you need less number of swaps than full sorting. For example, '4 1 2 3' needs three exchanges for full sorting, but you only need to exchange once for 2-rough sorting.

Given an array and an integer $K$, your task is to find the result of the $K$-rough sorting with a minimum number of exchanges. If there are several possible results, you should output the lexicographically minimum result. Here, the lexicographical order is defined by the order of the first different elements.

Input

The input consists of a single test case in the following format.

$N$ $K$
$x_1$
$\vdots$
$x_N$

The first line contains two integers $N$ and $K$. The integer $N$ is the number of the elements of the array ($1 \leq N \leq 10^5$). The integer $K$ gives how many reversed pairs are allowed ($1 \leq K \leq 10^9$). Each of the following $N$ lines gives the element of the array. The array consists of the permutation of $1$ to $N$, therefore $1 \leq x_i \leq N$ and $x_i \ne x_j$ ($i \ne j$) are satisfied.

Output

The output should contain $N$ lines. The $i$-th line should be the $i$-th element of the result of the $K$-rough sorting. If there are several possible results, you should output the minimum result with the lexicographical order.

Examples

Sample Input 1

3 1
3
2
1

Output for Sample Input 1

1
3
2

Sample Input 2

3 100
3
2
1

Output for Sample Input 2

3
2
1

Sample Input 3

5 3
5
3
2
1
4

Output for Sample Input 3

1
3
5
2
4

Sample Input 4

5 3
1
2
3
4
5

Output for Sample Input 4

1
2
3
4
5

In the last example, the input array is already sorted, which means the input is already a 3-roughly sorted array and no swapping is needed.
A: パ研 (Paken)

あなたはパ研部員であるから、"Paken" と出力しなさい。

入力

この問題には入力は与えられない。

出力

"Paken" と 1 行に出力してください。

最後の改行を忘れないようにしましょう。 必要な空白や改行がなかったり、余計な空白や改行を出力すると'Presentation Error'となり不正解になってしまいますので、注意してください。

入力例

(No input)

出力例

Paken

注意

Pは大文字、そのあとは小文字であることに注意してください。
B: 双子 (Twins)

とある双子は、自分たちのどちらが兄でどちらが弟かがあまり知られていないことに腹を立てた。

"ani" と入力されたら "square1001"、"otouto" と入力されたら "e869120" と出力するプログラムを作りなさい。

入力

入力として "ani" または "otouto" という文字列のどちらかが与えられます。

出力

"e869120" または "square1001" を、問題文の通りに出力してください。最後の改行を忘れないようにしましょう。

入力例1

ani

出力例1

square1001

入力例2

otouto

出力例2

e869120
C: 祈祷 (Pray)

とある双子は、コンテスト前に祈祷をすることで有名である。

4 つの整数 $H, W, X, Y$ があって、$H \times W$ と $x + y$ が両方とも奇数だと縁起が悪いらしい。

入力

4 つの整数 $H, W, X, Y$ が空白区切りで与えられる。

出力

縁起が悪いなら "No"、そうでないなら "Yes" を出力しなさい。ただし、最後の改行を忘れないこと。

制約

$H, W, X, Y$ は $1$ 以上 $100$ 以下の整数

入力例1

3 5 1 4

出力例1

No

$3 \times 5 = 15$, $1 + 4 = 5$ で、両方とも奇数なので、縁起が悪いです。

入力例2

3 5 2 4

出力例2

Yes

$3 \times 5 = 15$ で奇数ですが、$2 + 4 = 6$ で偶数なので、縁起は悪くないです。
D: 忖度 (Surmise)

とある双子は、偶数が好きである。

$N$ 個の整数 $A_1, A_2, A_3, \dots, A_N$ の中に偶数がいくつあるか数えよ。

入力

1 行目には整数 $N$ が与えられる。

2 行目には $N$ 個の整数 $A_1, A_2, A_3, \dots, A_N$ が空白区切りで与えられる。

出力

偶数の個数を出力せよ。ただし、最後に改行を入れること。

制約

$N$ は $1$ 以上 $100$ 以下の整数

$A_1, A_2, A_3, \dots, A_N$ は $1$ 以上 $100$ 以下の整数

入力例1

5
4 3 5 2 6

出力例1

3

$A_1 = 4$、$A_4 = 2$ と $A_5 = 6$ が偶数です。よって、偶数の個数は $3$ つです。

入力例2

3
2 2 2

出力例2

3

同じ数でも、$A_1, A_2, A_3, \dots, A_N$ の中の位置が違うのであれば、別のものとしてカウントします。
E-修行

ねねさんはプログラミングの修行のため、$N$ 個の整数 $V_1, V_2, V_3, \cdots, V_N$ について調べるプログラムを作っている。

指導役のうみこさんに言われて、ねねさんは 2, 3, 6 の倍数の個数を調べるプログラムを書いた。

2 の倍数は $A$ 個、3 の倍数は $B$ 個、6 の倍数は $C$ 個だった。

うみこさんは、次は「2 の倍数でも 3 の倍数でもない数」の個数を調べるようにと言った。

しかし、ねねさんは疲れたので、答えだけを求めてごまかすことにした。

$N, A, B, C$ の値だけをもとに、「2 の倍数でも 3 の倍数でもない数」の個数が分かります。これを求めるプログラムを作ってください。

入力

$N, A, B, C$ が空白区切りで与えられる。

出力

データの中にある「2 の倍数でも 3の倍数でもない数」の個数を出力せよ。ただし、最後には改行を入れること。

制約

$N$ は $1$ 以上 $100$ 以下の整数

$A, B, C$ は $0$ 以上 $N$ 以下の整数

$A$ が $N$ より大きいなどという、矛盾するデータは与えられない

入力例1

6 3 2 1

出力例1

2

例えばデータが $2, 3, 4, 5, 6, 7$ のときは、$5$ と $7$ のふたつが「2 の倍数でも 3 の倍数でもない数」です。

入力例2

10 9 9 9

出力例2

1
F: 茶会 (Tea Party)

ゆんさんは、会社でお茶会を開くことにした。

お店には $N$ セットのパンが売られていて、それぞれ $A_1, A_2, A_3, \dots, A_N$ 枚入っている。

ゆんさんは二つのパンを 1 組にしてをサンドウィッチを作ろうと考えた。

ゆんさんは几帳面なので、買ったパンが一枚も余らないようにしたい。

最大でいくつのサンドウィッチが作れるか計算せよ。

入力

1 行目には、整数 $N$ が与えられる。

2 行目には、$N$ 個の整数 $A_1, A_2, A_3, \dots, A_N$ が空白区切りで与えられる。

出力

作れるサンドウィッチの最大の個数を出力せよ。ただし、最後に改行を入れること。

制約

$N$ は $1$ 以上 $100$ 以下の整数

$A_1, A_2, A_3, \dots, A_N$ は $1$ 以上 $100$ 以下の整数

入力例1

5
2 3 5 6 7

出力例1

10

1, 3, 4, 5 番目のセットを買うと、パンが $20$ 枚手に入ります。

すべてのセットを買ってしまうとパンが $23$ 枚になって、余ってしまいます。

入力例2

4
3 5 6 8

出力例2

11
G: 労働 (Working)

コウさんはこれから $N$ 日間、毎日同じ件数の仕事をすることにした。

$N$ 日間のうち $i$ 日目には仕事が $A_i$ 件追加される。

コウさんには今溜まっている仕事はなく、$N$ 日目までにすべての仕事が終わっている必要はない。

一日で最大何件の仕事ができるか。

ただしコウさんは優秀なので、仕事が存在する限り何件でも仕事をすることができる。

入力

1 行目には $N$が与えられる。

2 行目には $N$ 個の整数 $A_1, A_2, A_3, \dots, A_N$ が空白区切りで与えられる。

出力

一日にできる仕事の最大の件数を出力せよ。最後には改行を入れること。

制約

$N$ は $1$ 以上 $100$ 以下の整数

$A_1, A_2, A_3, \dots, A_N$ は $1$ 以上 $100$ 以下の整数

入力例1

5
4 2 5 3 1

出力例1

3

一日 $4$ 件以上仕事することにすると、2 日目に仕事が尽きてしまいます。

入力例2

5
9 9 1 9 9

出力例2

6
H: 慈悲 (Mercy)

サンタクロースは、クリスマスなのにプログラミングをやっている集団を見つけた。

サンタクロースは彼らを可哀想に思ったので、ケーキをプレゼントすることにした。

クリームが $N$ 種類あって、美味しさは $A_1, A_2, A_3, \dots, A_N$ である。

スポンジが $M$ 種類あって、美味しさは $B_1, B_2, B_3, \dots, B_M$ である。

クリーム 1 種類とスポンジ 1 種類を組み合わせてケーキを作り、その美味しさは (クリームの美味しさ) × (スポンジの美味しさ) になる。

サンタクロースは慈悲深いので、$N \times M$ 通りの組み合わせのケーキをすべて一つずつ作った。

ケーキの美味しさは合計いくつか。

入力

1 行目には、整数 $N, M$ が空白区切りで与えられる。

2 行目には、整数 $A_1, A_2, A_3, \dots, A_N$ が空白区切りで与えられる。

3 行目には、整数 $B_1, B_2, B_3, \dots, B_M$ が空白区切りで与えられる。

出力

サンタクロースの作ったケーキの美味しさの合計を出力せよ。最後には改行を入れること。

制約

$N, M$ は $1$ 以上 $100 \ 000$ 以下の整数

$A_1, A_2, A_3, \dots, A_N$ は $1$ 以上 $1 \ 000$ 以下の整数

$B_1, B_2, B_3, \dots, B_M$ は $1$ 以上 $1 \ 000$ 以下の整数

注意

答えが 32 bit 整数型 (int 型など) の範囲に収まらない可能性があるので、64 bit 整数型 (long long 型など) を使いましょう。

入力例1

3 2
3 1 5
2 4

出力例1

54

サンタクロースは、次の 6 種類のケーキを作ります。

クリーム 1 とスポンジ 1 を組み合わせたケーキの美味しさ：$3 \times 2 = 6$

クリーム 1 とスポンジ 2 を組み合わせたケーキの美味しさ：$3 \times 4 = 12$

クリーム 2 とスポンジ 1 を組み合わせたケーキの美味しさ：$1 \times 2 = 2$

クリーム 2 とスポンジ 2 を組み合わせたケーキの美味しさ：$1 \times 4 = 4$

クリーム 3 とスポンジ 1 を組み合わせたケーキの美味しさ：$5 \times 2 = 10$

クリーム 3 とスポンジ 2 を組み合わせたケーキの美味しさ：$5 \times 4 = 20$

合計の美味しさは $54$ となります。

入力例2

10 10
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10

出力例2

3025
I: 破壊 (Ravage)

サンタクロースは、街のイルミネーションに引っかかり、壊した。

イルミネーションにはN個の電球があり、$i$ 番目の電球は電圧が $A_i$ 以上 $B_i$ 以下のときにしか付かなくなってしまった。

電圧はイルミネーションのどこでも同じにする必要がある。

電圧を調節することで、最大いくつの電球を同時に光らせることができるか求めよ。

入力

1 行目には整数 $N$ が与えられる。

続く $N$ 行のうち $i$ 行目には $A_i, B_i$ が空白区切りで与えられる。

出力

同時に光らせることができる電球の個数の最大値を出力せよ。

制約

$N$ は $1$ 以上 $100 \ 000$ 以下の整数

$A_1, A_2, A_3, \dots, A_N$ は $1$ 以上 $1 \ 000 \ 000 \ 000$ 以下の整数

$B_1, B_2, B_3, \dots, B_N$ は $1$ 以上 $1 \ 000 \ 000 \ 000$ 以下の整数

すべての電球 $i$ について、$A_i \leq B_i$ を満たす

入力例1

4
1 4
3 6
2 7
5 8

出力例1

3

電圧が $5$ や $3.14$ のときに $3$ つの電球がつきます。

入力例2

2
1 2
2 3

出力例2

2
J: 都 (City)

サンタはある都にプレゼントを届けることにした。

この都は南北 $H$ 区画 × 東西 $W$ 区画に分けられた長方形の形をしており、各区画にプレゼントを届ける家が 1 つずつある。

北から数えて $X$ 番目、西から数えて $Y$ 番目の区画を $(X, Y)$ で表す。

サンタは次の条件で移動する。

はじめに区画 $(S, T)$ に降り、この場所からスタートする。

1 回の移動で東西南北に隣り合う区画に移動でき、街の外には移動できない。

1 度訪ねた区画には、2 度と入らない。

サンタが都にあるすべての家を訪ねることができるか判定せよ。

入力

$H, W, S, T$が空白区切りで与えられる。

出力

サンタが都にあるすべての家を訪ねられる場合は "Yes"、そうでない場合は "No" と出力せよ。

制約

$H, W$ は $2$ 以上 $1 \ 000 \ 000 \ 000$ 以下の整数

$S$ は $1$ 以上 $H$ 以下の整数

$T$ は $1$ 以上 $W$ 以下の整数

入力例1

4 5 2 3

出力例1

Yes

例えば、図の行き方をすれば良い。

入力例2

3 3 1 2

出力例2

No
K: 救済 (Angel Relief)

天使の天真さんは、ある街を救うことにした。

この街は南北 $H$ 区画 × 東西 $W$ 区画に分けられた長方形の形をしており、各区画に家がある。

北から数えて $X$ 番目、西から数えて $Y$ 番目の区画を $(X, Y)$ で表す。

区画 $(i, j)$ にある家には $A_{i, j}$ 人の人が住んでいる。

天真さんは、辺が南北または東西に平行または垂直な長方形のエリアを選び、その中に住んでいる人全員をひとりずつ救済する。

天真さんは、考えられるすべての長方形でこの操作を行う。

天真さんが人を救済する回数の合計を求めよ。

入力

1 行目に、整数 $H, W$ が空白区切りで与えられる。

続く $H$ 行のうち $i$ 行目には、整数 $A_{i, 1}, A_{i, 2}, A_{i, 3}, \dots, A_{i, W}$ が空白区切りで与えられる。

出力

天真さんが人を救済する回数の合計を出力せよ。

制約

$H, W$ は $1$ 以上 $500$ 以下の整数

$A_{i, j}$ はすべて $1$ 以上 $9$ 以下の整数である。

入力例1

2 2
1 2
4 8

出力例1

60

例えば、左上を $(1, 1)$、右下を $(2, 2)$ となるように長方形のエリアを選ぶと、そこにいる $15$ 人をひとりずつ救済するので、合計 $15$ 回の救済を行う。

$9$ 通りの長方形のエリアに対して、それぞれ $1, 2, 3, 4, 5, 8, 10, 12, 15$ 回の救済を行うので、合計で $60$ 回である。

入力例2

2 3
1 2 3
4 5 6

出力例2

140
L: スギ (Demon's Cedar)

月の瀬さんは悪魔らしいことをするため、街じゅうの樹木をスギの木に変えて、人々を花粉症で困らせることにした。

樹木は $N$ 種類存在する。$i$ 種類目の樹木の天界でのランクは $A_i$、魔界でのランクは $B_i$ である。また、$1$ 種類目の樹木はスギである。

月の瀬さんは、次の操作を何度でも行うことができる。

天界で、種類 $i$ の樹木を種類 $j$ に変える。これには $|A_i - A_j|$ の時間がかかる。

魔界で、種類 $i$ の樹木を種類 $j$ に変える。これには $|B_i - B_j|$ の時間がかかる。

天界と魔界の移動や、その他の行動に時間はかからない。

それぞれの樹木の種類について、スギの木に変えるためにかかる最短の時間を求めよ。

入力

1 行目に、$N$ が与えられる。

2 行目に、$A_1, A_2, A_3, \dots, A_N$ が空白区切りで与えられる。

3 行目に、$B_1, B_2, B_3, \dots, B_N$ が空白区切りで与えられる。

出力

$N$ 行のうち $i$ 行目には、$i$ 種類目の樹木をスギの木に変えるための時間の最小値を出力せよ。

制約

$N$ は $1$ 以上 $100 \ 000$ 以下の整数

$A_i, B_i$ は $1$ 以上 $1 \ 000 \ 000 \ 000$ 以下の整数

入力例1

3
1 2 5
6 3 4

出力例1

0
1
2

樹木 1 は元からスギの木なので、コストはかかりません。

樹木 2 を天界で樹木 1 に変えると、コストは $|A_1 - A_2| = |1 - 2| = 1$ です。

樹木 3 を魔界で樹木 2 に変えたのち、天界で樹木 1 に変えるとコストは $|B_3 - B_2| + |A_2 - A_1| = |4 - 3| + |1 - 2| = 2$ です。

入力例2

5
1 10 5 6 9
2 3 4 7 8

出力例2

0
1
2
3
2
M: プレゼント (Presents)

白羽さんは、とある悪魔にサプライズプレゼントとして次のような集合を用意した。

$N$ 以下の異なる $K$ 個の自然数からなる

どの 2 つの値の組を集合から選んでも、片方の数がもう片方の数で割り切れる

実はこのような集合には悪魔の力を奪う性質があり、このままだと力を失ってしまう。

悪魔を助けるために、このような集合がいくつあるか計算せよ。

入力

2 つの整数 $N, K$ が空白区切りで与えられる。

出力

条件を満たす集合の個数を出力せよ。

制約

$N$ は $1$ 以上 $100 \ 000$ 以下の整数

$K$ は $1$ 以上 $N$ 以下の整数

入力例1

6 3

出力例1

3

集合 $(1,2,4), (1,2,6), (1,3,6)$ が条件を満たす。

入力例2

100000 7

出力例2

58848855

$N = 100 \ 000, K = 7$ のとき、条件を満たす集合は $58 \ 848 \ 855$ 通りある。
N: 通販 (Mail Order)

胡桃沢さんは、魔界通販で積み木のおもちゃを買った。

積み木は一辺の長さが1の立方体の形をしており、縦に $H$ 個、横に $W$ 個に分割されたマス目の上に積まれている。

真横から見ると、左から順に、$A_1, A_2, A_3, \dots, A_H$ 個のブロックが積まれて見えた。

正面から見ると、左から順に、$B_1, B_2, B_3, \dots, B_W$ 個のブロックが積まれて見えた。

胡桃沢さんは偉大なので、これらの情報だけからブロックの総数を当てようと考えた。

小さい数を答えて間違えると格好悪いので、考えられる最大の個数を答えたい。

入力

1 行目には整数 $H, W$ が空白区切りで与えられる。

2 行目には、真横から見たときの図を表す $H$ 個の整数 $A_1, A_2, A_3, \dots, A_H$ が空白区切りで与えられる。

3 行目には、正面から見たときの図を表す $W$ 個の整数 $B_1, B_2, B_3, \dots, B_W$ が空白区切りで与えられる。

出力

これらの情報から考えられるブロックの個数の最大値を出力しなさい。

制約

$H, W$ は $1$ 以上 $100 \ 000$ 以下の整数

$A_1, A_2, A_3, \dots, A_H$ は $1$ 以上 $100 \ 000 \ 000$ 以下の整数

$B_1, B_2, B_3, \dots, B_W$ は $1$ 以上 $100 \ 000 \ 000$ 以下の整数

すべての入力に対して、条件を満たすブロックの積み方があることが保証される

入力例1

2 2
1 5
1 5

出力例1

8

縦方向に $X$ 番目、横方向に $Y$ 番目のマスを $(X, Y)$ で表すことにします。

マス $(2, 2)$ に5個、マス $(1, 1)$、$(1, 2)$、$(2, 1)$ に $1$ 個ずつ積まれていると合計 $8$ 個のブロックが積まれることになります。

$9$ 個以上積まれている可能性は無いので、答えは $8$ です。

入力例2

3 3
2 4 5
3 1 5

出力例2

22
O: 千咲ちゃんと遠足 (Chisaki and Picnic)

幼稚園生の千咲ちゃんは、遠足にお菓子をもっていくことにした。

お菓子は $N$ 個あって、$i$ 番目のお菓子は値段が $A_i$ 円で、美味しさが $B_i$ である。

千咲ちゃんには友達が $M$ 人いて、$j$ 番目の友達は、値段が $C_j$ 円以上のお菓子を $D_j$ 個以上千咲ちゃんがもっていると泣きわめく。

友達が泣きわめいてしまうと千咲ちゃんはかなしいので、そうならないようにお菓子をもっていきたい。

お菓子の美味しさの合計は最大でいくつになるか求めて、千咲ちゃんを助けなさい。

入力

1 行目には、お菓子の個数 $N$ と、友達の人数 $M$ が空白区切りで与えられる。

続く $N$ 行のうち $i$ 行目には、$A_i, B_i$ が空白区切りで与えられる。

続く $M$ 行のうち $j$ 行目には、$C_j, D_j$ が空白区切りで与えられる。

出力

どの友達も泣かないように持っていくお菓子を選んだ時、その美味しさの合計としてありうる最大値を出力せよ。

制約

$N, M$ は $1$ 以上 $100 \ 000$ 以下の整数

$A_1, A_2, A_3, \dots, A_N$ は $1$ 以上 $1 \ 000 \ 000 \ 000$ 以下の整数

$B_1, B_2, B_3, \dots, B_N$ は $1$ 以上 $1 \ 000 \ 000 \ 000$ 以下の整数

$A_1 \leq A_2 \leq A_3 \leq \cdots \leq A_N$ を満たす

$C_1, C_2, C_3, \dots, C_M$ は $1$ 以上 $1 \ 000 \ 000 \ 000$ 以下の整数

$D_1, D_2, D_3, \dots, D_M$ は $1$ 以上 $1 \ 000 \ 000 \ 000$ 以下の整数

$C_1 \leq C_2 \leq C_3 \leq \cdots \leq C_M$ を満たす

入力例1

3 1
10 1
20 2
30 3
20 2

出力例1

4

$1, 3$ 番目のお菓子を持っていくと、友達を泣かせない範囲で、持ってくるお菓子の美味しさの合計を最大化することができます。

$2, 3$ 番目のお菓子両方を持っていくと、「値段が $20$ 円以上のお菓子を $2$ 個以上持ってくる」ことになるので、友達が泣きます。

入力例2

5 3
10 1
20 4
30 5
40 2
50 3
20 3
30 4
40 2

出力例2

10

$1, 2, 3$ 番目のお菓子を持っていくことによって、どの友達も泣かせない条件のもとで、持ってくるお菓子の美味しさの合計を最大化することができます。
A: 情報検索 / Information Search

問題

ポスティングリストとは、検索語と出現文書 ID の対応関係を持たせたリストである。例えば

北海道: 1, 2, 4, 9

観光: 1, 3, 4, 7

などである。

上記のポスティングリストから、and 検索をすると、ID 1, 4 の文書がヒットし、or 検索をすると、ID 1, 2, 3, 4, 7, 9 がヒットする。

ここで and 検索とは「どちらのリストにも含まれる要素を列挙する」ことであり、 or 検索とは「少なくともどちらか一方のリストに含まれる要素を列挙する」ことである。

ポスティングリストが与えられるので、and 検索と or 検索の結果をそれぞれ出力せよ。

入力形式

n m
a_1 a_2 $\ldots$ a_n
b_1 b_2 $\ldots$ b_m

入力はすべて整数からなる。

1 行目には検索すべき 2 つのポスティングリストの長さ n と m が空白区切りで与えられる。

2 行目と 3 行目にはそれぞれのポスティングリストに含まれる ID が空白区切りで与えられる。

制約

1 \leq n, m \leq 2\times10^5

a_i < a_j (i < j)

b_i < b_j (i < j)

1 \leq a_i, b_i \leq 10^9

出力形式

and 検索のヒット数を A、or 検索のヒット数を B とする。

最初の一行に A B の順に空白区切りで出力せよ。

続く A 行に and 検索でヒットした ID を昇順に出力せよ。

続く B 行に or 検索でヒットした ID を昇順に出力せよ。

入力例1

4 4
1 2 4 9
1 3 4 7

出力例1

2 6
1
4
1
2
3
4
7
9

入力例2

4 4
1 3 5 7
2 4 6 8

出力例2

0 8
1
2
3
4
5
6
7
8

入力例3

3 5
1 2 3
1 2 3 4 5

出力例3

3 5
1
2
3
1
2
3
4
5
B: 括弧を語る数 / Parentheses Number

問題

以下のように 正しい括弧列 を定めます。

空文字列は正しい括弧列である

正しい括弧列 S に対して ( S ) は正しい括弧列である

正しい括弧列 S, T に対して ST は正しい括弧列である

ここで、正しい括弧列に対して以下のような規則で順列を対応付けます。

i 番目の閉じ括弧が j 番目の開き括弧に対応しているとき、 数列の i 番目の値は j である。

長さ n の順列 P = ( p_1, p_2, $\ldots$, p_n ) が与えられるので、 それに対応する括弧列を復元してください。

ただし、順列に対応する括弧列が存在しない場合は :( を出力してください。

入力形式

n
p_1 p_2 $\ldots$ p_n

1 行目に順列の項数 n が与えられる。

2 行目に順列 p_1, p_2, $\ldots$, p_i, $\ldots$, p_n が空白区切りで与えられる。

制約

1 \leq n \leq 10^5

1 \leq p_i \leq n

入力は全て整数である。

P = ( p_1, p_2, $\ldots$, p_n ) は順列である。

出力形式

順列に対応する括弧列を出力してください。

そのような括弧列が存在しない場合は :( を出力してください。

入力例1

2
2 1

出力例1

(())

入力例2

10
1 2 3 4 5 6 7 8 9 10

出力例2

()()()()()()()()()()

入力例3

3
3 1 2

出力例3

:(
C: 約数ゲーム / Divisor Game

問題

tsutaj くんは約数ゲームで遊ぼうとしています。

約数ゲームでは、まず 2 以上の自然数 N が与えられ、その後は以下の手順でゲームが進んでいきます。

N 以外の N の約数の中から、整数を 1 つ宣言する。ただしこのとき、既に宣言したことがある整数の約数になるものは宣言できない。

宣言できる整数がある限りこれを繰り返し、宣言できるものがなければゲームは終了する。

ゲームを終了させるまでに行われた宣言の回数としてあり得る数の最小値と最大値を求めてください。

入力形式

入力は 1 行で与えられる。

N

制約

2 \leq N \leq 10^{12}

出力形式

宣言回数の最小値と最大値を、スペース区切りで 1 行に出力せよ。

入力例1

18

出力例1

2 5

宣言回数を 2 回にする一例は以下の通りです。

9 を宣言する。

6 を宣言する。 (6 は 9 の約数ではないため宣言が可能である)

これを行うと、18 の約数で 18 でない任意の整数は今まで宣言してきた整数の約数になるため、ゲームが終了します。

既に宣言したことがある整数の約数になるものは宣言できないことに注意してください。例えば、 9 を宣言したあとに 3 を宣言することはできません。なぜなら、3 は 9 の約数になるからです。

入力例2

99

出力例2

2 5

入力例3

10000000019

出力例3

1 1

入力は 32 bit 整数型に収まらない場合があります。
D: 矢 / Arrow

問題

rodea 君は 1 次元座標系の中におり、x = 0 の場所に立っている。この位置から、x = N の位置にある的を目がけて、 常に速さ 1 で移動する正の整数の長さの矢を投げる。しかし、rodea 君は非力なため、 区間 0 \leq x \leq N の中に合計 M 個の送風機を置くことにしている。

ここで、矢の先端から根元までの位置に 1 つの送風機も含まれない場合を「損失」と定義する。損失の判定は、矢の先端が x = 1, 2, 3, $\ldots$, N に到達した際に行う（つまり、合計 N 回行う）。

このとき、以下のクエリを Q 回処理せよ。

「損失」許容可能な回数 l_i が与えられる。すなわち、N 回の判定において、「損失」が合計 l_i 回以下なら矢を的に届けることが可能である。このときの、矢を的に届けるために必要な最短の矢の長さを求める。

入力形式

N M
m_1 m_2 $\ldots$ m_M
Q
l_1 l_2 $\ldots$ l_Q

1 行目に距離 N と送風機の個数 M が空白区切りで与えられる。

2 行目に、M 個の送風機それぞれの位置が与えられる。m_i=j のとき、 i 番目の送風機は x=j-1 と x=j の丁度中間に位置している。

3 行目にクエリの個数 Q が与えられ、4 行目に「損失」許容可能な回数 l_i が Q 個与えられる。

制約

1 \leq N \leq 10^5

1 \leq M \leq N

1 \leq m_1 < m_2 < $\ldots$ < m_M \leq N

1 \leq Q \leq 10^5

0 \leq l_i \leq 10^5 (1 \leq i \leq Q)

出力形式

与えられる Q 個の l_i に対して考えられる最短の矢の長さを、順に改行して出力せよ。

ただし、条件を満たす正の整数の長さの矢が存在しない場合は -1 を出力するものとする。

入力例1

5 1
2
1
3

出力例1

2

矢の先端が x = 1 に到達したとき、先端から根元までに送風機は含まれないので、「損失」回数は 1 になる。

矢の先端が x = 2 に到達したとき、先端から根元までに送風機は含まれるので、「損失」回数は 1 のままである。

矢の先端が x = 3 に到達したとき、先端から根元までに送風機は含まれるので、「損失」回数は 1 のままである。

矢の先端が x = 4 に到達したとき、先端から根元までに送風機は含まれないので、「損失」回数は 2 になる。

矢の先端が x = 5 に到達したとき、先端から根元までに送風機は含まれないので、「損失」回数は 3 になる。

長さ 2 より短い矢を投げる場合、「損失」回数が 3 よりも多くなるため、長さ 2 の矢を投げるときが条件を満たす最短の矢の長さである。

入力例2

11 3
2 5 9
3
1 4 8

出力例2

4
3
1