alexjercan/bugnet huggingface dataset:
Problem G: First Kiss

Problem

ビット君の通う男子校では昼休みにキッポーゲームが行われている。

この学校のキッポーゲームは少し変わっていることで有名だ。

まず、$N$本のキッポーを用意する。$i$本目のキッポーの長さは$a_i$である。

先手と後手が交互にキッポーを食べる。

すごい長さのキッポーを一気に食べると喉に刺さってしまうので、$1$以上$D$以下の好きな長さだけ食べる。

彼らは不器用なので、整数長でのみキッポーを食べることができる。

最初にいずれかのキッポーが食べつくされたとき、食べきった人の負けとなる。

両者が最適に行動したとき、先手が勝つなら"First"、後手が勝つなら"Second"を出力せよ。

Input

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

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

入力はすべて整数で与えられる。

Constraints

入力は以下の条件を満たす。

$1 \le N \le 3\times 10^5$

$1 \le D \le 10^9$

$1 \le a_i \le 10^9$

Output

両者が最適に行動したとき、どちらが勝つか出力せよ。

先手が勝つなら"First"、後手が勝つなら"Second"を出力せよ。

Sample Input 1

1 1
2

Sample Output 1

First

Sample Input 2

2 25
19 19

Sample Output 2

Second

Sample Input 3

3 5
10 8 4

Sample Output 3

First

Sample Input 4

4 10
3 8 5 2

Sample Output 4

Second
Problem H: Ghost

Problem

幽霊が一直線上に左から右に$N$人並んでいる。

最初、左から$i$番目の幽霊は$U_i$が'L'ならば左を、'R'ならば右を向いている。

彼らはとても臆病なのでなるべく怖い幽霊を見たくない。

あなたは、各幽霊に対して振り返るように指示をできる。

後ろを振り返るのは怖いので、$i$番目の幽霊が一回振り返ると$A_i$の恐怖度が発生する。

左を向いている幽霊が振り返ると、右を向く。

右を向いている幽霊が振り返ると、左を向く。

$ i < j $ に対して、$i$番目の幽霊が右を向いていて、かつ$j$番目の幽霊が左を向いている場合、$i$番目の幽霊と$j$番目の幽霊は向き合っていると定義する。

以下の制約が$M$個与えられる。

$S_i$番目の幽霊は$T_i$番目の幽霊が怖い。

最終的な状態で、$S_i$番目の幽霊と$T_i$番目の幽霊が向き合っていると$B_i$の恐怖度が発生する。

最適な指示を行なったときに発生する恐怖度の合計の最小値を求めよ。

Input

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

$N$ $M$
$U$
$A_1$ $A_2$ $...$ $A_N$
$S_1$ $T_1$ $B_1$
$S_2$ $T_2$ $B_2$
$\vdots$
$S_M$ $T_M$ $B_M$

入力はすべて整数で与えられる。

Constraints

入力は以下の条件を満たす。

$1 \le N \le 500$

$0 \le M \le \min ( N \times (N-1) , 1000 )$

$|U|=N$

$U_i = $'L' or 'R'

$1 \le A_i \le 1000$

$1 \le B_i \le 1000$

$1 \le S_i,T_i \le N$

$(S_i,T_i) \ne (S_j,T_j), $if $ i \ne j$

$S_i \ne T_i$

Output

恐怖度の合計の最小値を出力せよ。

Sample Input 1

3 1
RRL
5 5 1
3 1 10

Sample Output 1

1

3番目の幽霊に振り向くように指示をすると、恐怖度の合計は1となる。恐怖度の合計が0以下になるような指示は存在しないので、1を出力する。

Sample Input 2

5 5
RLRLL
9 5 1 3 10
1 3 5
2 4 9
4 2 16
1 5 2
3 5 10

Sample Output 2

8
Problem I: Shuffle 2

Problem

$n$枚のカードからなる束があり、下から$i$番目のカードには$i$が書かれている。この束に対して、以下のように定義されるシャッフルを$q$回行う。

束を下から見たとき、奇数番目のカードを上に重ねていって作られる束$x$、偶数番目のカードを上に重ねていって作られる束$y$を考える。その後以下の$2$つのうち、好きな操作を行う。

操作 $0$： 束$x$の上に束$y$をのせて$1$つの束にする。

操作 $1$： 束$y$の上に束$x$をのせて$1$つの束にする。

例えば、$6$枚のカードからなる束(下から123456)に対して$1$回のシャッフルを行うことを考えたとき、操作$0$を行った場合に得られる束は下から246135 135246、操作$1$を行った場合に得られる束は下から135246 246135である。(14:52修正)

$q$回のシャッフルの後、$k$の書かれたカードが束の下から$d$番目にあるようにしたい。

可能であるなら$q$回のシャッフルの操作を順番に出力し、不可能ならば$-1$を出力せよ。

Input

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

$n$ $q$ $k$ $d$

Constraints

入力は以下の条件を満たす。

$2 \le n \le 10^{15}$

$1 \le q \le 10^6$

$1 \le k,d \le n$

$n$は偶数

Output

条件を満たすシャッフルが可能なら$q$行にシャッフルの操作を出力せよ。

不可能なら$-1$を出力せよ。

Sample Input 1

4 2 1 1

Sample Output 1

0
0

Sample Input 2

4 2 3 1

Sample Output 2

0
1

Sample Input 3

4 1 1 4

Sample Output 3

-1

Sample Input 4

7834164883628 15 2189823423122 5771212644938

Sample Output 4

0
1
1
1
1
1
0
1
0
1
0
0
0
0
0
Problem J: Rings

Problem

とある水族館に住むイルカ君は、ジャンプをして$N$個のリングをくぐり抜けるとご褒美がもらえます。

イルカ君は座標$(0,0)$から飛び、$(T,0)$で着水する。

ジャンプの軌道は放物線である。

$i$番目のリングは、ジャンプの軌道が$(X_i,L_i)$と$(X_i,H_i)$を結ぶ線分と交わると、くぐり抜けたと判定される。

$1$回のジャンプには初速と同じだけの体力が必要である。

イルカ君は、必要であれば何度でもジャンプをすることができます。重力加速度ベクトルを$(0,-1)$として、イルカ君が全てのリングを通り抜けるために必要な体力の合計の最小値を求めてください。ただし、摩擦や空気抵抗は無視できるほど小さいとします。

Input

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

$T$ $N$
$X_1$ $L_1$ $H_1$
$\vdots$
$X_N$ $L_N$ $H_N$

まず$1$行に$T$と$N$が与えられる。その後$N$行に$i$番目のリングの位置、$X_i$、$L_i$、$H_i$が与えられる。

Constraints

入力は以下の条件を満たす。

入力はすべて整数である。

$1 \le X_i < T \le 10^6$

$1 \le N \le 10^5$

$1 \le L_i < H_i \le 10^6$

Output

答えを一行に出力する。絶対誤差または相対誤差が$10^{-9}$以下の場合正答と判定される。

Sample Input 1

100 5
50 1 5
50 5 10
50 20 30
50 40 60
50 61 1000000

Sample Output 1

48.6090201099

点$(50,5)$を通るように飛ぶと、$1$番目と$2$番目のリングを同時にくぐることができます。

Sample Input 2

64 15
38 133177 927361
48 177920 668766
12 680425 790550
43 6853 384115
17 214954 723798
62 63843 153825
28 399349 482937
2 336136 367001
33 138008 733496
6 203462 911631
58 321974 527734
17 696940 781678
55 265874 507640
41 56037 880001
34 279422 528651

Sample Output 2

6087.909851326286
Problem K: Encampment Game

Problem

$N$頂点の木がある。各頂点はそれぞれ1から$N$の番号が割り振られている。

Gacho君と川林君はこの木を使って陣取りゲームをすることにした。

ゲームはGacho君と川林君が異なる頂点にいる状態からスタートする。

Gacho君から交互に頂点を移動することを繰り返し、最初に移動できなくなった方が負けである。

移動方法:

頂点$x$にいる時、頂点$x$と辺で直接結ばれているまだ誰も訪れたことがない頂点のいずれかに移動する。

そのような頂点が存在しない場合、移動することはできない。

Gacho君が最初にいる頂点を頂点$A$、川林君が最初にいる頂点を頂点$B$とする。

Gacho君と川林君が互いに最善を尽くしたとき、Gacho君が勝つことになる頂点$A$と頂点$B$の組み合わせの通り数を求めよ。

Input

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

$N$
$u_1$ $v_1$
$u_2$ $v_2$
$\vdots$
$u_{N-1}$ $v_{N-1}$

入力はすべて整数で与えられる。

1行目に頂点数$N$が与えられる。

2行目から続く$N-1$行に木の辺の情報が空白区切りで与えられる。

$1+i$行目の入力は頂点$u_i$と頂点$v_i$が辺で結ばれていることを表す。

Constraints

入力は以下の条件を満たす。

$2 \leq N\leq 2000 $

$ 1 \leq u_i, v_i \leq N$

与えられるグラフは木である

Output

Gacho君が勝つ頂点$A$と頂点$B$の組み合わせの通り数を1行に出力せよ。

Sample Input 1

2
1 2

Sample Output 1

0

頂点$A$と頂点$B$の組み合わせは(1, 2), (2, 1)の2通りあり、どちらもGacho君は初手で移動することができないので必ず負ける。

Sample Input 2

6
1 2
2 3
3 4
4 5
5 6

Sample Output 2

12

Sample Input 3

5
1 2
1 3
3 4
3 5

Sample Output 3

12

Sample Input 4

20
14 1
2 1
18 14
10 1
12 10
5 1
17 5
7 1
11 17
4 1
19 2
15 1
3 19
8 15
9 8
20 8
6 1
16 15
13 7

Sample Output 4

243
Problem L: Product

Problem

会津君は、素数$P$、自然数からなる集合$G$、自然数$A$を使ってゲームをすることにしました。

まず、会津君は手元の紙に$1$を書きます。その後、以下の一連の操作を任意の回数行います。

$G$から要素を一つ選ぶ。これを$g$とする。

手元の紙に書かれた数と$g$との積を新しく紙に書く。

元々紙に書かれていた数を消す。

手元の紙に書かれた数を$P$で割ったあまりと$A$が等しければ会津君の勝ちで、そうでなければ負けです。$P$、$G$、$A$が与えられたときに会津君が勝つことができるか判定してください。

Input

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

$P$ $T$
$Test_1$
$\vdots$
$Test_{T}$

入力は複数のテストケースからなる。まず$1$行に素数$P$とテストケースの数$T$が与えられる。$P$は全てのテストケースで共通である。続く$T$行に各テストケースが与えられる。

各テストケースは以下のように与えられる。

$|G|$ $G_1$ $\dots$ $G_{|G|}$ $A$

各テストケースでは、$G$の要素数、$G$の各要素、$A$が順番に空白で区切られて与えられる。

Constraints

入力は以下の条件を満たす。

入力はすべては整数である。

$2 \le P \le 2^{31}-1$

$1 \le T,|G| \le 10^5$

$1 \le G_i,A \le P-1$

$G_i \ne G_j,$ if $i \ne j$

全てのテストケースの$|G|$の総和は$10^5$を超えない。

Output

各テストケースに対して、会津君が勝つことができるならば$1$を、そうでなければ$0$を一行に出力する。

Sample Input 1

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

Sample Output 1

0
1
0

Sample Input 2

1000000007 8
3 2 9 7 5
3 2 9 5 1000001
3 39 1002 65537 12
2 1000000006 518012930 793649232
10 459268180 313723762 835892239 612038995 90424474 366392946 38051435 854115735 5132833 320534710 421820264
1 1 1
1 1 1000000006
1 1000000006 1

Sample Output 2

0
1
1
1
0
1
0
1
Problem M: 1333

Problem

長さ$N$の文字列$S$が与えられる。
以下のクエリを$Q$回処理せよ。

クエリ

$S[L: R]$を$S$の$L$文字目から$R$文字目まで（両端を含む）からなる文字列とする。

$ S[L: R] $を適当な文字列$A,B,C,X$を用いて$AXBXCX(1 \leq |A|,|B|,|C|,|X|)$ と表すことを考え、そのような$X$の中で最長のものの長さを出力する。

ただし、そのような$X$が存在しない場合は代わりに0を出力する。

Input

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

$N$ $Q$
$S$
$L_1$ $R_1$
$L_2$ $R_2$
$\vdots$
$L_Q$ $R_Q$

$N,Q,L,R$はすべて整数で与えられる。

1行目に$N$, $Q$が空白区切りで与えられる。

2行目に文字列$S$が与えられる。

2+$i(1\leq i \leq Q)$行目に$L_i$, $R_i$が空白区切りで与えられる。これらは$i$番目のクエリにおける$L,R$を表す。

Constraints

入力は以下の条件を満たす。

$1 \leq N, Q\leq 2 \times 10^5 $

$S$の各文字は小文字アルファベットからなる

$1 \leq L_i \leq R_i \leq N $

Output

各クエリについて、最長の$X$の長さを一行に出力せよ。

Sample Input 1

12 3
itisansansan
1 12
5 12
6 7

Sample Output 1

2
1
0

一つ目のクエリにおいて、$A=itis, B=s, C=s, X=an$とおくと、$S[1:12]=AXBXCX$となる。

Sample Input 2

20 2
sensanbyakusanjuusan
1 20
1 14

Sample Output 2

3
1

Sample Input 3

21 6
aaaabaaaabaaaaaaaaaab
1 21
10 21
10 18
4 16
11 21
1 6

Sample Output 3

4
0
2
2
0
1
Problem A: AOJ50M

Problem

AliceとBobが50m走で勝負しています。

しかし、この世界においてはAOJのレートが高い方が偉いので、AOJのレートが高い方が勝ちます。

どちらか一方でもAOJのレートが無い場合は比べようが無いので、仕方なく50m走のタイムで勝負します。この場合はタイムが短い方を勝ちとします。

AOJのレートが同じ場合は引き分け、50m走のタイムで勝負しなければならない場合はタイムが同じなら引き分けです。

Input

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

$T_1$ $T_2$ $R_1$ $R_2$

各要素が空白区切りで与えられる。

$T_1,T_2$ はそれぞれAlice、Bobの50m走のタイムを、$R_1,R_2$ はそれぞれAlice、BobのAOJのレートを表す。

ただし、$R_1=-1$ のときはAliceのレートがないことを、$R_2=-1$ のときはBobのレートがないことを示す。

Constraints

入力は以下の条件を満たす。

$1 \leq T_1,T_2 \lt 100 $

$-1 \leq R_1,R_2 \lt 2850 $

入力は全て整数である

Output

Aliceが勝つならなら"Alice"を、Bobが勝つならなら"Bob"を、引き分けであれば"Draw"を$1$行に出力せよ。

Sample Input 1

9 8 1000 999

Sample Output 1

Alice

Aliceの方がAOJのレートが高いため、Aliceの勝ちです。

Sample Input 2

9 8 1000 1000

Sample Output 2

Draw

AliceとBobのAOJのレートが同じため、引き分けです。この場合50m走の結果は関係がないことに注意してください。

Sample Input 3

9 8 2849 -1

Sample Output 3

Bob

Aliceのレートは高いですが、Bobのレートが無いため50m走のタイムが短いBobの勝ちです。
Problem B: How old are you

Problem

胡散臭いマジシャンがマジックを披露するようです。

「さて、1つの好きな整数を思い浮かべてください。」

あなたは、頭の中に自分の数え年を思い浮かべることにしました。

マジシャンはクエリを $N$ 回投げてきました。

各クエリは、以下のうちのどれかです。

「今思い浮かべている数に、 $x$ を掛けてください。」

「今思い浮かべている数に、 $x$ を足してください。」

「今思い浮かべている数から、 $x$ を引いてください。」

各クエリごとに、思い浮かべている数に対してクエリを処理し、結果として出た値を頭の中に思い浮かべます。

「さて、今から最初にあなたの思い浮かべた数を当ててみせましょう。」

そういったマジシャンは、何かを言おうとしています。

しかし、何を言えばいいのか忘れてしまったようです。

胡散臭いマジシャンは汗ダラダラであなたを見つめています。

仕方がないので、何を言えばいいのか教えてあげましょう。

マジシャンは最後に以下のように言うつもりだったようです。

「今あなたが思い浮かべている整数に、 $A$ を足して、 $B$ で割れば、それはあなたが最初に思い浮かべた整数なのです」

制約から、整数の組 $(A,B)$ であって、思い浮かべた整数がいくつであっても上の条件を満たすものが、ただ1つに定まります。

整数の組 $(A,B)$ を求めてください。

ただし、 $B$ は $0$ であってはいけません。

Input

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

$N$
$q_1$ $x_1$
$\vdots$
$q_n$ $x_n$

$1$ 行目に与えられるクエリの数 $N$ が与えられる。

$2$ 行目から続く $N$ 行にクエリの情報が与えられる。

$q$ はクエリの種類を表し、問題文中のリストの数字に対応する。

Constraints

入力は以下の条件を満たす。

$1 \leq N \leq 15 $

$1 \leq q \leq 3 $

$1 \leq x \leq 10 $

入力は全て整数である

Output

$1$ 行に条件を満たす整数 $A,B$ を空白区切りで出力せよ。

Sample Input 1

3
1 2
2 10
3 8

Sample Output 1

-2 2

Sample Input 2

10
1 10
1 10
1 10
1 10
1 10
1 10
1 10
1 10
1 10
1 10

Sample Output 2

0 10000000000

32bit整数型に答えが収まるとは限らないことに注意してください。
Problem C: Satake likes straight

Problem

Satake君は曲がったことが嫌いです。

例えば、鉛筆や箸、家が曲がった形をしているのは嫌いですし、右折や左折などの行動をとることも嫌いです。

さて、XY 平面上で暮らすSatake君は $N$ 個のお店 $(X_{1},Y_{1}),(X_{2},Y_{2}), \ldots , (X_{N},Y_{N})$ で買い物をするようお使いを頼まれました。座標 $(0, 0)$ にある家から $(1, 0)$ の方向を向いた状態で出発し、すべてのお店で買い物をしたあと、家に帰ります。お店を回る順番は自由です。Satake君はお使いとして次に示す任意の行動を何度でも行うことができます。

向いている方向に好きなだけ進む

お店か家と同じ座標のとき時計回りか反時計回りに好きな角度だけその場で回転する

お店と同じ座標のとき座標や向いている方向の状態を維持したまま買い物をする

先程も言ったようにSatake君は曲がることが嫌いです。心の準備ができるように、Satake君が行動2.で回転する角度の和の最小値を求めてください。例として、時計回りに $90^{\circ}$ 回転した後、反時計回りに $90^{\circ}$ 回転した場合、角度の和は $180^{\circ}$ となります。

Input

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

$N$
$X_{1}$ $Y_{1}$
$\vdots$
$X_{N}$ $Y_{N}$

入力は $N+1$ 行からなります。

$1$ 行目には買い物をする店の個数を表す $N$ が与えられます。

$2$ 行目から続く $N$ 行には、買い物をするお店の座標 $X_{i}, Y_{i}$ が空白区切りで与えられます。

Constraints

入力は以下の条件を満たします。

$2 \le N \le 8$

$-1000 \le X_{i}, Y_{i} \le 1000 \quad (1 \le i \le N)$

$(X_{i}, Y_{i}) \ne (0, 0) \quad (1 \le i \le N)$

$(X_{i}, Y_{i}) \ne (X_{j}, Y_{j}) \quad (i \ne j)$

入力はすべて整数

Output

Satake君が回転する角度の和の最小値を度数法で出力してください。ただし想定解との絶対誤差が $10^{-4}$ 以下のときのみ正解とします。

Sample Input 1

2
0 1
0 -1

Sample Output 1

450.00000000

Satake君は最初 $(1, 0)$ 方向を向いて出発することに注意してください。

Sample Input 2

3
1 0
0 1
-2 -1

Sample Output 2

386.565051
Problem D: Blaster

Problem

なんと、あなたは洞窟の中に閉じ込められてしまいました！

壁が崩れたりでもしたのでしょうか、1つしかない出口にたどり着くまでには沢山の岩が邪魔をしています。

しかしなんと、あなたのすぐ隣に爆弾の自動販売機があることに気がつきました。

さらに、洞窟にはいくつかの「ブラスター」も落ちているようです。

この2つの道具を活用すれば、出口まで脱出できそうです。

アイテムの説明

洞窟内で使用できるアイテムとして、「爆弾」「ブラスター」の2種類があります。

爆弾は、使用することで1マス分の岩を破壊できるアイテムです。

ブラスターは、使用することで自身の正面一直線にある岩を全て破壊することのできるアイテムです。

対象となる岩を破壊すると、岩は砕け散り「床」となります。

爆弾、ブラスターは使い切りで、各アイテムごとに使用できる回数はそれぞれ1回のみです。

また、ブラスターを使用することで、他のブラスターを破壊することはありません。

洞窟のフィールド

偶然手持ちにあったドローンを飛ばして、洞窟の様子を知ることが出来ました。

洞窟のフィールドが与えられます。

フィールドは以下のようなアスキーアートで与えらます。

_###
##B#
B##_

フィールドは、上下に $H$ マス、左右に $W$ マスの幅を持つ $H \times W$ のマスからなる長方形です。

$i$ 行 $j$ 列目のマスを $(i,j)$ と表します。

各マスには、床、壁、ブラスターのいずれかがあります。

ブラスターのマスには、床の上にちょうど1つのブラスターが落ちていることを示します。

なお、フィールドの外側は爆弾やブラスターでも破壊できない壁で囲まれています。

フィールドの外側に出ることは出来ません。

脱出までの行動

あなたは、以下の行動を任意の回数取ることが出来ます。

隣接するマスの、任意の床へ進む。

隣接するマスにある任意のブラスターを取得する。取得後、ブラスターを取得したマスは床となる。

隣接するマスにある岩を、爆弾を1つ消費して破壊する。

現在のマスから、上下左右好きな方向を向いて、所持しているブラスターを1つ使用する。

ここで、マス $(i,j)$ と $(k,l)$ が隣接するとは、 $|i-k|+|j-l|=1$ であることをいいます。

ブラスターは十分に軽いため、行動中いくつでも取得することが出来ます。

但し、アイテムの説明に記載してあるとおり、取得した個数分の回数しかブラスターを使用することは出来ないので、注意してください。

最初、マス $(1,1)$ にいます。

脱出とは、マス $(H,W)$ に到達することを言います。

ミッション

あなたは、爆弾の自動販売機から大量の爆弾を買えば問題なく脱出できることに気づきました。

幸い、爆弾の自動販売機には $10^{100}$ 個の在庫があり脱出するには十分そうです。

しかし、爆弾は非常に高価であるためあまり沢山買いたくありません。

手に入れた洞窟の様子から、脱出するには最小でいくつの爆弾を買う必要があるか、知りたくなりました。

Input

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

$H$ $W$
$c_{1,1}$$\cdots$$c_{1,W}$
$\vdots$
$c_{H,1}$$\cdots$$c_{H,W}$

1行目に $H,W$ が空白区切りに与えられます。

2行目から、続く $H$ 行にフィールドの情報がアスキーアートで与えられます。

フィールドの情報は、それぞれの文字ごとに以下の意味を持ちます。

$c_{i,j}$ が '#' のとき、 $(i,j)$ に岩があることを示す。
$c_{i,j}$ が '_' のとき、 $(i,j)$ に床があることを示す。
$c_{i,j}$ が 'B' のとき、 $(i,j)$ にブラスターがちょうど1つあることを示す。

Constraints

入力は以下の条件を満たす。

$2 \leq H,W \leq 1000 $

$H,W$ は整数である

$c_{1,1},c_{H,W}$ は、必ず'_'である。

Output

1行に脱出に必要な爆弾の数を出力せよ。

Sample Input 1

8 5
_###_
_#_B#
_####
____#
###_#
#####
###_#
####_

Sample Output 1

1

この場合の脱出方法は、

マス $(3,4)$ にある岩を爆弾で破壊する

マス $(2,4)$ にあるブラスターを取得する

マス $(2,4)$ で下方向にブラスターを使用する

脱出！

このように、爆弾 $1$ つで脱出することが出来ます。

なお、ブラスターを使用した直後のフィールドは、以下のようになっています。

_###_
_#__#
_##_#
____#
###_#
###_#
###_#
###__

Sample Input 2

5 5
_____
_____
_____
_____
_____

Sample Output 2

0

邪魔する岩もブラスターもありません。目の錯覚だったのでしょうか。

爆弾を一つも買うことなく、脱出できる場合もあります。

Sample Input 3

4 5
_####
##B##
_####
_###_

Sample Output 3

2

マス $(2,1),(2,2)$ にある岩を破壊すれば、爆弾 $2$ つだけで脱出可能です。

Sample Input 4

4 5
_#B##
#####
##B##
####_

Sample Output 4

1
Problem E: Cyclic Shift Sort

Problem

長さ $N$ の順列 $P = \{ P_1, P_2, \ldots, P_N \} $ と整数 $K$ が与えられる。

以下の操作を $0$ 回以上任意の回数繰り返すことで、順列 $P$ を単調増加にすることができるかどうか判定せよ。

整数 $x \ (0 \le x \le N-K)$ を選ぶ。 $ P_{x+1}, \ldots, P_{x+K} $ を巡回右シフトする

ただし、部分列 $U=U_1, \ldots, U_M$ の巡回右シフトとは、 $U=U_1, \ldots, U_M$ を $U=U_M, U_1, \ldots, U_{M-1}$ に変更することを意味する。

Input

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

$N$ $K$
$P_1$ $\ldots$ $P_N$

1行目に順列の長さ $N$ 、整数 $K$ が空白区切りで与えられる。

2行目に順列 $P$ の要素が空白区切りで与えられる。

Constraints

入力は以下の条件を満たす。

$2 \leq K \leq N \leq 10^5 $

$ 1 \leq P_i \leq N \ (1 \leq i \leq N) $

$ P_i \neq P_j \ (i \neq j) $

入力はすべて整数

Output

$P$ を単調増加にすることができるなら"Yes"を、できないのであれば"No"を $1$ 行に出力せよ。

Sample Input 1

3 3
2 3 1

Sample Output 1

Yes

$ x = 0 $ として操作を $1$ 回行うと、 $P$ を単調増加にすることができる。

Sample Input 2

3 2
1 2 3

Sample Output 2

Yes

$P$ が初めから単調増加である場合もある。

Sample Input 3

3 3
3 2 1

Sample Output 3

No

どのように操作を行なったとしても、 $P$ を単調増加にすることはできない。
Problem F: Bus

Problem

円環状に $1$ から $N$ までの番号がつけられた $N$ 個のバス停が右回りに並んでいる。
隣接するバス停どうしは道で結ばれている。
各 $i \ (1 \le i \le N)$ について、バス停 $i$ とバス停 $i+1$ の間を直接結ぶ道の長さは $d_i$ メートルである。
ただし、バス停 $N+1$ はバス停 $1$ のことを表す。

$M$ 台のバスがある。
$j \ (1 \le j \le M)$ 番目のバスは $c_j='R'$ のとき右回り、$c_j='L'$ のとき左回りに走行する。
また、時刻 $0$ にバス停 $b_j$ を出発し、$1$ メートル進むのに $t_j$ 秒かかる。

この問題において、

バスは永遠に走り続ける

バスの乗り降りには時間がかからない

バス停では、あるバスがそのバス停を通過する瞬間、そのバスに乗り降りできる

バス停以外でバスに乗り降りすることはできない

何台のバスに乗ってもよい

とする。

以下のクエリを合計 $Q$ 回処理せよ。

時刻 $0$ にバス停 $x_k$ を出発し、バス停 $y_k$ までバスのみを利用して移動するときの、所要時間の最小値を求めよ。

Input

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

$N$ $M$ $Q$
$d_1$ $\ldots$ $d_N$
$c_1$ $b_1$ $t_1$
$\vdots$
$c_M$ $b_M$ $t_M$
$x_1$ $y_1$
$\vdots$
$x_Q$ $y_Q$

1行目にバス停の数 $N$、バスの数 $M$、クエリの数 $Q$ が空白区切りで与えられる。

2行目に隣接するバス停を繋ぐ道の情報が空白区切りで与えられる。

3行目から続く $M$ 行にバスの情報が空白区切りで与えられる。

続く $Q$ 行にクエリの情報が空白区切りで与えられる。

Constraints

入力は以下の条件を満たす。

$3 \leq N \leq 10^5 $

$1 \leq M \leq 10^5 $

$1 \leq Q \leq 10^5 $

$ 1 \leq d_i \leq 10^2 \ (1 \leq i \leq N) $

$ c_j = 'R' \ or \ 'L' \ (1 \leq j \leq M) $

$ 1 \leq b_j \leq N \ (1 \leq j \leq M) $

$ 1 \leq t_j \leq 10^5 \ (1 \leq j \leq M) $

$ 1 \leq x_k, y_k \leq N \ (1 \leq k \leq Q) $

$ x_k \neq y_k \ (1 \leq k \leq Q) $

入力で与えられる数はすべて整数

Output

出力は $Q$ 行からなる。

各クエリに対し、所要時間の最小値を出力せよ。

$k$ 行目には $k$ 番目のクエリに対する答えを出力せよ。

Sample Input 1

3 1 6
1 2 3
R 1 1
1 2
1 3
2 1
2 3
3 1
3 2

Sample Output 1

1
3
6
3
6
7

$1$ つ目のクエリでは、時刻 $0$ にバス停 $1$ からバス $1$ に乗り、時刻 $1$ にバス停 $2$ で降りるのが最適である。

Sample Input 2

4 6 7
45 72 81 47
R 1 47202
L 1 2156
L 2 95728
R 1 30739
L 3 39679
L 4 86568
3 2
3 4
1 2
2 4
4 3
1 4
2 1

Sample Output 2

431200
629552
431200
629552
275968
101332
528220
Problem G: Double or Increment

Problem

ある日、mo3tthi君とtubuann君は、魔法のポケットとビスケットを使ってゲームをすることにしました。

今ここに $K$ 個のポケットがあり、$1,2, \ldots ,K$ の番号がついています。

$i$ 番目のポケットの容量は $M_i$ で、最初 $N_i$ 枚のビスケットが入っています。

mo3tthi君とtubuann君は、mo3tthi君から始めて、以下の一連の操作を交互に行います。

ポケットを一つ選ぶ。

以下のいずれか一方の操作を一度だけ行う。ただし、操作の結果選んだポケットに入っているビスケットの枚数がポケットの容量を超える場合、操作を行うことはできない。

選んだポケットを撫でる。魔法の力によって選んだポケットに入っているビスケットの枚数が $1$ 増える。

選んだポケットを叩く。魔法の力によって選んだポケットに入っているビスケットの枚数が $2$ 倍になる。

操作を行えなくなった時点でゲームは終了し、操作を行えなくなった人が負け、そうでない人が勝ちになります。

mo3tthi君の友人であるあなたは、mo3tthi君から事前にこのゲームに勝てるかどうかを判定できないか相談されました。

mo3tthi君のために、mo3tthi君がこのゲームに必ず勝つことができるかどうかを判定するプログラムを作ってください。

Input

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

$K$
$N_1$ $M_1$
$\vdots$
$N_K$ $M_K$

Constraints

入力は以下の条件を満たす。

$1 \leq K \leq 10^5$

$1 \leq N_i \leq M_i \leq 10^{18}$

入力は全て整数である

Output

mo3tthi君が最適に行動したとき、必ず勝つことができるなら"mo3tthi"を、そうでないなら"tubuann"を一行に出力する。

Sample Input 1

1
2 4

Sample Output 1

mo3tthi

mo3tthi君が一番目のポケットを叩くと、一番目のポケットに入っているビスケットの枚数が $4$ になり、tubuann君は操作を行うことができない。

Sample Input 2

2
2 3
3 8

Sample Output 2

tubuann

Sample Input 3

10
2 8
5 9
7 20
8 41
23 48
90 112
4 5
7 7
2344 8923
1 29

Sample Output 3

mo3tthi
Problem H: Count Words

Problem

$M$ 種類の文字がある。それらを使って長さ $N$ の文字列を作る。使われている文字の種類数が $K$ 以上であるような文字列は何通りあるか。$998244353$ で割ったあまりを求めよ。

ここで長さ $N$ の2つの文字列が異なるとは以下のように定義される。

2つの文字列を $S = S_1S_2 \ldots S_N$, $T = T_1T_2 \ldots T_N$ とした場合に、$S_i \neq T_i$ となるような $i$ $(1 \leq i \leq N)$ が存在する。

Input

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

$M$ $N$ $K$

1行に $M, N, K$ が空白区切りで与えられる。

Constraints

入力は以下の条件を満たす。

$1 \leq M \leq 10^{18} $

$1 \leq N \leq 10^{18} $

$1 \leq K \leq 1000 $

入力はすべて整数

Output

使われている文字の種類数が $K$ 以上であるような長さ $N$ の文字列の通り数を $998244353$ で割ったあまりを出力せよ。

Sample Input 1

2 10 1

Sample Output 1

1024

Sample Input 2

1 1 2

Sample Output 2

0

Sample Input 3

5 10 3

Sample Output 3

9755400

Sample Input 4

7 8 3

Sample Output 4

5759460

Sample Input 5

1000000000000000000 1000000000000000000 1000

Sample Output 5

133611974
Problem I: Coin and Die

Problem

表と裏のあるコインと $1$ から $N$ までの目があるサイコロがある。Gachoくんはこれらを用いて以下のゲームをして遊ぶことにした。

ゲームは最初に得点が $0$ の状態から始まり、以下の手順で進められる。

サイコロを $1$ 回振り、そのとき出た目の数を得点に加算する

現在の得点が $K$ 以上ならゲームクリアとなりゲームを終了する

現在の得点が $K$ 未満ならコインを投げ表が出れば1.に戻り、裏が出ればゲームオーバーとなりゲームを終了する

コインは投げると $A\%$の確率で表になり、 $(100-A)\%$の確率で裏になる。また、サイコロは振ると、それぞれの目が等確率で出現する。

このとき、一度のゲームでGachoくんがゲームクリアすることができる確率を求めよ。

求める確率を互いに素な整数 $P, Q$ を用いて $\frac{P}{Q}$ と表したとき、 $R \times Q \equiv P\bmod 998244353$ となる $0$ 以上 $998244352$ 以下の整数 $R$ を出力せよ。この問題の制約下で、このような $R$ は必ず一意に存在する。

Input

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

$N$ $K$ $A$

$N, K, A$ が空白区切りで一行に与えられる。

Constraints

入力は以下の条件を満たす。

$1 \leq N \leq 10^5 $

$1 \leq K \leq 10^5 $

$1 \leq A \leq 99 $

入力はすべて整数

Output

ゲームをクリアすることができる確率を互いに素な整数 $P, Q$を用いて $\frac{P}{Q}$ と表したとき、$R \times Q\equiv P\bmod 998244353$ となる $0$ 以上 $998244352$ 以下の整数 $R$ を出力せよ。

Sample Input 1

1 1 50

Sample Output 1

1

Sample Input 2

2 2 10

Sample Output 2

648858830

Sample Input 3

6 10 99

Sample Output 3

650893870
Problem J: Ukunichia Query

Problem

$N$ 人の人が左から右へ一列に並んでいる。彼らの間では文字列 $S$ が流行している。

各人は、以下の条件を満たすとき幸せであり、そうでないとき幸せではない。

今までに $|S|$ 文字以上の文字を伝えられていて、かつ直近の $|S|$ 文字を古い順から新しい順に並べると $S$ と一致する

以下の $2$ 種類のクエリを合計 $Q$ 回処理せよ。

クエリ1

$1$ $l$ $r$ $c$

区間 $[l, r]$ に含まれる人に文字列 $c$ を左から一文字ずつ伝える。

クエリ2

$2$ $l$ $r$

区間 $[l, r]$ に含まれる幸せな人の数を求める。

ただし、区間 $[l, r]$ とは、左から $l$ 番目から $r$ 番目までの人のことを表す。

Input

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

$S$
$N$ $Q$
$query_1$
$\vdots$
$query_Q$

$1$ 行目に流行している文字列 $S$ が与えられる。

$2$ 行目に並んでいる人の数 $N$ とクエリの数 $Q$ が空白区切りで与えられる。

$3$ 行目から続く $Q$ 行にクエリの情報が与えられる。

Constraints

入力は以下の条件を満たす。

$1 \leq |S| \leq 20 $

$1 \leq N \leq 10^5 $

$1 \leq Q \leq 10^5 $

$1 \leq l \leq r \leq N$

$1 \leq |c| \leq 10 $

$S, c$ は英小文字からなる

各クエリはクエリ1かクエリ2のいずれかである

クエリ2が必ず一つ以上含まれる

Output

各クエリ2について、幸せな人の数を1行に出力せよ。

Sample Input 1

abab
5 5
2 2 4
1 1 5 abab
2 3 5
1 3 3 a
2 1 5

Sample Output 1

0
3
4

Sample Input 2

uku
1333 5
2 232 423
1 13 532 uku
2 322 567
1 3 33 ku
2 1 333

Sample Output 2

0
211
321

Sample Input 3

aabb
1879 20
2 69 1585
1 415 1680 aabb
1 756 1628 abbabbaa
1 849 1273 abba
2 418 1172
2 1063 1164
2 203 623
2 481 1209
1 107 110 ababaaaab
1 857 985 bbbbabbbaa
1 868 947 aaa
1 1619 1789 aabab
2 204 844
2 493 1422
2 821 1499
1 757 1817 abbabbb
2 232 911
1 653 797 aaabaaaab
2 701 1657
1 868 940 aaabbbaaa

Sample Output 3

0
338
0
209
275
341
263
0
341
0
Problem K: Gold Rush

Problem

moritaoy君とは、コンピュータのなかで暮らしている謎の大学生です。

moritaoy君が暮らしている区画は、縦に $2^H$ 、横に $2^W$ 、の大きさのある二次元空間 $S= \{ (p,q) \in \mathbb{Z}^2 | 0 \leq p \lt 2^H, 0 \leq q \lt 2^W \} $ として表されます。

moritaoy君はいくつかの非負整数を要素とする二次元ベクトルを持っていて、この空間上を足し算を用いて移動します。

moritaoy君が $(a,b)$ にいて、ベクトル $(i,j)$ によって移動するとは、具体的には以下のような行動を示します。

$(a+i,b+j)$ に移動する。ただし、そのような点が $S$ に存在しない場合は、オーバーフローを起こし、$a+i \equiv k \bmod 2^H , b+j \equiv l \bmod 2^W$ を満たすようなmoritaoy君の暮らす空間上の点 $(k,l) \in S$ に移動する。

以下がmoritaoy君の一日の予定です。

一日を開始する。このとき、moritaoy君は $(0,0)$ にいて、疲労度は $0$ である。2.を行う。

今日、moritaoy君が移動を行った回数が $K$ 以上なら4.を、そうでないなら3.か4.のどちらか一方を行う。

moritaoy君が持っているベクトルのなかから一つを選び、これを $v$ とする。$v$ によって移動する。moritaoy君の疲労度が $T_v$ 増加する。その後のmoritaoy君の疲労度を $T$ とし、 $T \times G_v$ 単位時間休憩する。2.を行う。

一日を終了する。

moritaoy君は、色々な予定を立てて遊ぶことにしました。

各 $(a,b)$ に対して、一日を終了したときにmoritaoy君が $(a,b)$ にいるような予定全ての、一日に休憩する時間の総和を求めてください。

ただし、二つの予定が異なるとは、二つの予定の一日に移動する回数が異なる、またはある $i$ があって $i$ 回目の移動に用いるベクトルが異なることをいいます。

Input

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

$H$ $W$ $K$
$T_{(0,0)}$ $\ldots$ $T_{(0,2^W-1)}$
$\vdots$
$T_{(2^H-1,0)}$ $\ldots$ $T_{(2^H-1,2^W-1)}$
$G_{(0,0)}$ $\ldots$ $G_{(0,2^W-1)}$
$\vdots$
$G_{(2^H-1,0)}$ $\ldots$ $G_{(2^H-1,2^W-1)}$

$T_{(i,j)}$ が $-1$ でないとき、かつそのときに限り、moritaoy君はベクトル $(i,j)$ を持つ。

$2^H \leq i$ または $2^W \leq j$ ならばmoritaoy君はベクトル $(i,j)$ を持たない。

Constraints

入力は以下の条件を満たす。

$0 \leq H,W \leq 9$

$1 \leq K \leq 10^{5}$

$-1 \leq T_{(i,j)} \lt 998244353$

$-1 \leq G_{(i,j)} \lt 998244353$

$T_{(i,j)}=-1$ のとき、かつそのときに限り、$G_{(i,j)}=-1$

入力は全て整数である

Output

出力は $2^H$ 行からなる。

$i$ 行目には $2^W$ 個の要素を空白区切りで出力する。

$i$ 行目の $j$ 番目の要素は、一日を終了したときにmoritaoy君が $(i-1,j-1)$ にいるような予定全ての、一日に休憩する時間の総和である。

ただし、答えは非常に大きくなることがあるので、$998244353$ で割ったあまりを出力すること。

Sample Input 1

0 0 10
1
2

Sample Output 1

440

Sample Input 2

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

Sample Output 2

355 358 363 386
391 408 419 378

Sample Input 3

1 1 100000
900000000 -1
-1 902010312
218738721 -1
-1 281371299

Sample Output 3

311157817 0
0 640524124
Problem L: Space Travel

Story

遠い昔、はるかかなたの銀河系で。

時は内乱の嵐が吹き荒れるさなか、凶悪な銀河帝国の軍勢が反乱軍の秘密基地を襲った。

恐るべき帝国宇宙艦隊の追撃から逃れた、ウーク・スターウォーカーによって率いられる自由の戦士たちは、銀河の辺境に新たな秘密基地を築くことにした。

反乱軍の一員であり、凄腕のプログラマーであるあなたにあたえられたミッションは、銀河系のそれぞれの惑星から最も離れた惑星を見つけることである。

Problem

銀河系には $N$ 個の惑星があり、$M$ 個の「橋」と呼ばれる秘密のルートがある。

惑星にはそれぞれ $1,2, \ldots N$ の番号が、橋にはそれぞれ $1,2, \ldots M$ の番号がついている。

各惑星の位置は実三次元空間上の点として表され、惑星 $p$ は $(x_p,y_p,z_p)$ に位置する。

$i$ 番目の橋は、惑星 $u_i$ から $v_i$ へと向かう秘密のルートである。

$i$ 番目の橋を使って惑星 $v_i$ から $u_i$ へ直接移動することはできないことに注意せよ。

惑星 $p$ と $q$ の距離を以下のように定義する。

$\mathrm{d} (p,q) = |x_p - x_q| + |y_p - y_q| + |z_p - z_q|$

惑星 $p$ から $0$ 個以上の橋を伝って到達可能な惑星の集合を $S_p$ とする。
各 $p$ について、$\displaystyle \max_{s \in S_p} \mathrm{d} (p,s)$ を求めよ。

ただし、反乱軍は常に凶悪な銀河帝国の軍勢に狙われているため、橋以外のルートで惑星間を移動することはできない。

Input

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

$N$ $M$
$x_1$ $y_1$ $z_1$
$\vdots$
$x_N$ $y_N$ $z_N$
$u_1$ $v_1$
$\vdots$
$u_M$ $v_M$

Constraints

入力は以下の条件を満たす。

$1 \leq N \leq 2 \times 10^5$

$1 \leq M \leq 5 \times 10^5$

$1 \leq u_i , v_i \leq N$

$|x_p|,|y_p|,|z_p| \leq 10^8$

$u_i \neq v_i$

$i \neq j$ なら $(u_i,v_i) \neq (u_j,v_j)$

$p \neq q$ なら $(x_p,y_p,z_p) \neq (x_q,y_q,z_q)$

入力は全て整数である

Output

$N$ 行出力せよ。

$i$ 行目には $\displaystyle \max_{s \in S_i} \mathrm{d} (i,s)$ を出力せよ。

Sample Input 1

2 1
1 1 1
2 2 2
1 2

Sample Output 1

3
0

Sample Input 2

2 2
1 1 1
2 2 2
1 2
2 1

Sample Output 2

3
3

Sample Input 3

6 6
0 8 0
2 3 0
2 5 0
4 3 0
4 5 0
6 0 0
1 3
2 3
3 5
5 4
4 2
4 6

Sample Output 3

14
7
9
5
7
0

Sample Input 4

10 7
-65870833 -68119923 -51337277
-59513976 -24997697 -46968492
-37069671 -90713666 -45043609
-31144219 43731960 -5258464
-27501033 90001758 13168637
-96651565 -67773915 56786711
44851572 -29156912 28758396
16384813 -79097935 7386228
88805434 -79256976 31470860
92682611 32019492 -87335887
6 7
7 9
6 5
1 2
2 4
4 1
9 8

Sample Output 4

192657310
138809442
0
192657310
0
270544279
99779950
0
96664294
0