alexjercan/bugnet huggingface dataset:
Problem A: 雅先生の地球侵略日誌

クァークゴ帝国遠征軍は、地球侵略をもくろむ悪の組織である。彼らは侵略者の伝統にのっとり、日
本の東京周辺をターゲットに、毎週１体のペースで怪人を送りこみ続けていた。しかし、そのたびに
人類戦隊アースファイブと名乗る５人の戦士があらわれ、街で暴れまわっていた怪人はあっさりと倒
されてしまうのであった。

ワルザード・スルー（地球名：源雅）は、そんな現状を本気で憂いている、クァークゴ帝国遠征軍の
女幹部である。彼女は、毎週の敗北から何も学ぼうとしない司令官や、どこかズレた発明を繰り返す
天才科学者らの下で、頭の痛い日々を過ごしていた。

そんな中、次の作戦は吸血怪人ドラキュラスを日本に送りこむことに決まった。ドラキュラスは、血
を吸った人間をドラキュラスに変えてしまう恐るべき怪人である。ドラキュラスに血を吸われた人間
もまた、他の人間の血を吸って仲間のドラキュラスを増やしていく。こうして地球全土をドラキュラ
スで埋めつくしてしまおうという作戦だ。

これを聞いたワルザードは、すぐに悟った。この作戦は、幼稚園バスの乗っ取りのような普段やって
いるセコい作戦とは訳が違う。あのダメ司令官が立案したものにしては珍しく、本当に地球を征服で
きる可能性を秘めていると。

倍々ゲームの勢いは恐ろしい。地上に降りたったドラキュラスは、またたく間に仲間の数を増やして
いった。このまま行けば地球侵略は目と鼻の先だと思われた。だがその瞬間、ワルザードの脳裏を、
強烈にいやな予感が走り抜けた。まさか、この怪人、オリジナルが倒されると仲間も全滅するなんて
ことはないよな？

慌ててドラキュラスを設計開発した科学者を問いつめたところ、やはりワルザードの危惧していた通
りだった。オリジナルのドラキュラスがやられると、血を吸われた人間はすべて元に戻るように設計
してあるのだという。ふざけんなよ開発者。どうしてそんな余計な機能をつけた！

ワルザードは、開発担当者に飛び膝蹴りをきめると、すぐさまオリジナルの回収作業にとりかかっ
た。いくらオリジナルと偽物は見た目がまったく同じだといっても、このままでは、駆けつけたアー
スファイブに何かしらの理由でオリジナルを見抜かれて敗北するのが目に見えている。

開発者の話によると、ドラキュラス化した人間の重さはすべて同じだが、オリジナルのドラキュラス
はそれよりも少しだけ重いらしい。それならば、天秤ばかりを使えばオリジナルを見つけることがで
きるはずだ。アースファイブがあらわれる前に、できるだけ早くオリジナルのドラキュラスを見つけ
て回収しなければ。

Input

N

入力の１行目には、整数 N（2 ≤ N ≤ 2,000,000,000）が書かれている。これは、オリジナルと偽物を合わせたドラキュラスの数をあらわす。

Output

天秤ばかりを使ってN 体のドラキュラスの中から１体のオリジナルを見つけるには、最悪の場合で
も天秤ばかりを何回使えれば十分か。その最小値を出力せよ。ただし、天秤ばかりの左と右の皿に、
それぞれ何体かのドラキュラスを乗せて重さを比較することを、１回とカウントする。

Sample Input 1

8

Sample Output 1

2

Sample Input 2

30

Sample Output 2

4

Sample Input 3

2000000000

Sample Output 3

20
Problem B: 友だちの誘い方

明日から、待ちに待った夏休みが始まります。なのでわたしは、友だちを誘って、海に遊びに行くこ
とに決めました。

けれども、わたしの友だちには、恥ずかしがりやさんが多いです。その人たちは、あまり多くの人が
いっしょに来ると知ったら、きっと嫌がるでしょう。

ほかにも、わたしの友だちには、目立ちたがりやさんも多いです。その人たちは、いっしょに来る人
があまり多くないと知れば、きっと嫌がるでしょう。

それと、わたしの友だちには、いつもは目立ちたがりやなのに実は恥ずかしがりやさんな人もいま
す。その人たちは、いっしょに来る人が多すぎても少なすぎても、きっと嫌がるでしょう。

こういうのは、大勢で行った方が楽しいはずです。だからわたしは、できるだけたくさんの友だちを
誘いたいと思っています。けれども、嫌がる友だちを無理やり連れていくのはよくありません。

いったい、わたしは最大で何人の友だちを誘うことができるのでしょうか。

わたしは、こういう頭を使いそうな問題が大の苦手です。なので、あなたにお願いがあります。もし
よろしければ、わたしの代わりにこの問題を解いていただけないでしょうか。いえ、決して無理にと
は言いません。けれど、もし解いていただるのでしたら、わたしはとても嬉しいです。

Input

N

a1 b1

a2 b2

.

.

.

aN bN

入力の１行目には、整数N（1 ≤ N ≤ 100,000）が書かれている。これは、友だちの数をあらわす。

続くN行には、整数 ai と整数 bi（2 ≤ ai ≤ bi ≤ 100,001）が、空白区切りで書かれている。１＋ i 行目に書かれた整数 ai とbi は、i 番目の友だちは海に行く人数が ai 人以上 bi 人以下でないと嫌がることをあらわす。海に行く人数には「わたし」も含まれることに注意せよ。

Output

嫌がる友だちが出ないように、海に誘うことのできる友だちの最大人数を出力せよ。

Sample Input 1

4
2 5
4 7
2 4
3 6

Sample output 1

3

Sample Input 2

5
8 100001
7 100001
12 100001
8 100001
3 100001

Sample output 2

0

Sample Input 3

6
2 9
4 8
6 7
6 6
5 7
2 100001

Sample output 3

5
Problem 3: 時空のスゴロク・ロード

全時空統一ディメンション・スゴロク・トーナメント。500 兆人を超える参加者の中から、ただ１人
のスゴロク絶対王者を決定するその大会に、あなたは２１世紀の地球代表として参加している。

今あなたが挑戦している課題は、自分自身をコマとした１次元スゴロク。端のスタートマスから出発
して、１から６までの目が一つずつ書かれた巨大な６面ダイスを振って出た目の数だけ進むことを繰
り返す、あなたもよく知っている形式のスゴロクだ。スタートマスとは反対の端にあるゴールマスに
止まるとゴールとなる。もちろん、ゴールするまでにサイコロを振った回数が少なければ少ないほど
良い成績となる。

マスの中には特殊な効果を持ったマス「○マス進む」と「○マス戻る」が存在し、そこに止まってし
まうと、指定されたマス数だけ進む、もしくは戻らなければならない。マスの効果で動いた結果、ふ
たたび効果のあるマスに止まった場合は、続けて指示どおりに移動する。

しかし、これは一筋縄では攻略できない時空スゴロクだ。恐るべきことに、たとえば「３マス進む」
の３マス先に「３マス戻る」が置かれていることもありうる。このようなマスに止まり、マスの効果
で無限ループに陥ってしまった場合は、永遠にマスを往復し続けなければならない。

だが幸いなことに、あなたの身体には、望んだ事象を全事象に変えることのできる異能『確率湾曲』
が宿っている。この能力を使えば、サイコロの出目を自由に操ることも可能。このアドバンテージを
活かして、無限ループに陥らないようにしながら進んでいくとき、ゴールするまでにサイコロを振る
回数の最小値はいくつになるだろうか。

Input

N

p1

p2

.

.

.

pN

入力の１行目には、整数 N（3 ≤ N ≤ 100,000）が書かれている。これは、スゴロクのマス数をあらわす。マスには1 番からN 番までの番号がふられている。スタートのマスが1 番で、それからスタートに近い順に2 番、3 番、……、N - 1 番と続き、ゴールのマスがN 番である。i 番のマスでサイコロを振ってj の目が出たら、i + j 番のマスへと移動する。ただし、もしもi + j がN を超えていたら、余った数だけ戻ったりはせず、ゴールしたとみなされる。

続くN 行には、整数 pi（-100,000 ≤ pi ≤ 100,000）が書かれている。1 ＋ i 行目に書かれた整数 pi
は、i 番のマスに書かれている指示をあらわす。pi > 0 ならば「pi マス進む」、pi < 0 ならば「-pi マス戻る」であり、pi = 0 ならばそのマスには何の効果もない。p1 とpN は必ず0 である。マスの効果で、スタートより前やゴールより後に移動しろと指示されることはない。

なお、与えられるスゴロクは、ゴールすることが可能であると仮定してよい。

Output

ゴールするまでにサイコロを振る回数の最小値を出力せよ。

Sample Input 1

11
0
0
-2
0
-4
1
-1
2
0
0
0

Sample Output 1

3

Sample Input 2

12
0
0
7
0
2
0
0
3
-6
-2
1
0

Sample Output 2

1

Sample Input 3

8
0
4
-1
1
-2
-2
0
0

Sample Output 3

2
Problem D: 僕の友達は小さい

僕には、たくさんの友達がいる。どの友達も、とても小さい。

僕は、よく友達と一緒に出かける。何人かの友達をリュックに入れて、一緒に出かける。

僕は毎朝、その日一緒に出かける友達を決める。空のリュックに、１人ずつ友達を入れていく。

僕は、あまり力が強くない。だから、同時に運べる友達の重さには限界がある。

僕は、重さの限界を超えないように友達を入れていく。どの順番で入れていくかは気分次第。

僕は、入れられる友達がまだ残っている限り、入れるのを止めない。決して止めない。

……ところで、リュックに入った友達の組み合わせは、全部で何パターンあるんだろう？

Input

N W

w1

w2

.

.

.

wn

入力の１行目には、整数N（1 ≤ N ≤ 200）と整数W（1 ≤ W ≤ 10,000）が、この順に空白区切りで書かれている。整数N は友達の数を、整数W は同時に運べる重さの限界をあらわす。重さの合計がW より大きいと運ぶことはできない。

続くN 行には、友達の重さをあらわす整数が書かれている。整数wi（1 ≤ wi ≤ 10,000）が、i 番目の友達の重さをあらわす。

Output

最終的にリュックに入っている友達の組み合わせは何通り考えられるか。その総数を1,000,000,007
で割った余りを出力せよ。なお1,000,000,007 は素数である。

「誰もリュックに入っていない」も１通りとして数えることに注意せよ。

Sample Input 1

4 8
1
2
7
9

Sample Output 1

2

Sample Input 2

4 25
20
15
20
15

Sample Output 2

4

Sample Input 3

6 37
5
9
13
18
26
33

Sample Output 3

6
Problem E: 街を駆ける道

ネーヴァ王国には、トタタ族とツテテ族、２種類の民族が暮らしている。トタタ族の最大の特徴は、
酢豚にパイナップルを入れて食べることである。だがツテテ族は、パイナップルに酢豚を入れて食べ
る。こんな２つの民族がお互いに仲良くやっていけるはずもなく、トタタ族とツテテ族は、何百年も
の昔からずっといがみ合いを続けてきた。

そんなある日、ネーヴァ王のもとに、２つの民族から嘆願書が届いた。それによるとトタタ族は、自
分たちが暮らす街Ａと街Ｂのあいだを結ぶ道を建設してほしいらしい。一方でツテテ族も、自分たち
が暮らす街Ｃと街Ｄのあいだを結ぶ道を建設してほしいらしい。

２つの民族が衝突するのを防ぐため、トタタ族が通る道とツテテ族が通る道を交差させることはでき
ない。また、技術的な制約により、２つの街のあいだを一直線に結ぶような道しか建設することはで
きない。つまり、必要ならば街Ａと街Ｂを直接道で結ばずに、いくつかのトタタ族の街を経由して街
Ａと街Ｂを間接的に結ぶことになるだろう（もちろん、ツテテ族の街を経由してはならない）。その
際、トタタ族の街を結ぶ道どうしは交差していてもよい。街Ｃと街Ｄについても同様である。

道を建設するには、その長さに比例したコストがかかる。なので、条件をみたしつつ、できるだけ建
設する道の長さの合計が短くなるようにしたい。さて、長さの最小値はいくつになるだろうか。

Input

NA NB

xA,1 yA,1

xA,2 yA,2

.

.

.

xA,NA yA,NA

xB,1 yB,1

xB,2 yB,2

.

.

.

xB,NB yB,NB

入力の１行目には、整数NA（2 ≤ NA ≤ 1,000）と整数NB（2 ≤ NB ≤ 1,000）が、空白区切りで書かれている。これは、ネーヴァ王国にはトタタ族が暮らす街がNA 個、ツテテ族が暮らす街がNB 個あることをあらわす。初期状態では、どこにも道は建設されていない。

続くNA 行には、整数xA,i（-10,000 ≤ xA,i ≤ 10,000）と整数yA,i（-10,000 ≤ yA,i ≤ 10,000）が、空白区切りで書かれている。ネーヴァ王国の地理は２次元直交座標平面であらわされ、１＋ i 行目に書かれた整数xA,i とyA,i は、トタタ族が暮らすi 番目の街の位置座標が(xA,i, yA,i) であることをあらわす。(xA,1, yA,1) と(xA,2, yA,2) が、結ぶべき２つの街の座標である。

続くNB 行には、整数xB,i（-10,000 ≤ xB,i ≤ 10,000）と整数yB,i（-10,000 ≤ yB,i ≤ 10,000）が、空白区切りで書かれている。１＋ NA ＋ i 行目に書かれた整数xB,i とyB,i は、ツテテ族が暮らすi 番目の街の位置座標が(xB,i, yB,i) であることをあらわす。(xB,1, yB,1) と(xB,2, yB,2) が、結ぶべき２つの街の座標である。

どの２つの街の座標も異なっており、どの３つの街も同一直線上にないと仮定してよい。

Output

問題文の条件をみたすように道を建設したとき、道の長さの合計の最小値を出力せよ。ここで言う
「長さ」とは、ユークリッド距離のことである。ただし、どうやっても条件をみたす道を建設できな
いときは、代わりに-1 を出力せよ。出力は誤差を含んでいてもよいが、真の値との相対誤差が10-9未満でなければならない。

Sample Input 1

2 2
0 0
1 1
2 0
2 -1

Sample Output 1

2.414213562373

Sample Input 2

2 3
4 0
0 0
2 3
2 -2
3 1

Sample Output 2

-1

Sample Input 3

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

Sample Output 3

12.359173603117
Problem F: １０歳の動的計画

ある日の夕方。いつものようにあなたが居間でテレビを見ていると、小学５年生の妹から相談を持ち
かけられた。話を聞いてみると、今日学校で出された算数の問題が難しくて理解できなかったので、
あなたに解き方を教えてほしいのだという。

妹を悩ませている問題は、「道が碁盤目状に通っている街において、家(0, 0) から学校(N, M) まで最短距離で進む方法は何通りあるか？」というものだった。もちろん、あなたにとっては赤子の手をひねるよりも簡単な問題である。すぐに上のような図を書いて「家(0, 0) から順番に足し算していけば解けるよ」と教えてあげた。

ところが、それを聞いてもまだ、妹はなにやら下を向いて考えこんでいる。あなたは、自分の説明の
仕方が悪かったのだろうかと思ったが、どうやらそうではないらしい。

たっぷり３分ほど悩んでいただろうか。妹は、おもむろに顔を上げると、あなたに向かってこう言っ
た。

「でも、わたしだったら、きっと学校に行く途中でK 回くらい寄り道しちゃうだろうな……。ねぇお
兄ちゃん、そうすると答えは何通りになるの？」

さあ大変だ。兄の威厳を保つため、なんとしてもこの問題に答えねば。

この問題を定式化すると、次のようになる。

点(0, 0) から点(N, M) まで、碁盤目状の道を通って進む方法は何通りあるか答えよ。

基本的には右か上に１マス進むが、途中で、ちょうどK 回だけ寄り道をする。

「寄り道をする」とは、左か下に１マス進むことである。

K 回の寄り道をすませていない場合、いったん点(N, M) に着いた後でも歩き続ける。途中で点(0, 0) に戻ってくる場合もある。

家はこの街の隅に建っているので、X 座標またはY 座標が負になるような点に入ることはできない。

しかし、X 座標がN より大きな点、または、Y 座標がM より大きな点には入ることができる。

Input

N M K

入力の１行目には、整数N（1 ≤ N ≤ 100,000）と整数M（1 ≤ M ≤ 100,000）と整数K（0 ≤ K ≤ 10,000）が、この順に空白区切りで書かれている。整数N は学校のX 座標を、整数M は学校のY座標を、整数K は寄り道の回数をあらわす。

Output

点(0, 0) から点(N, M) まで、K 回の寄り道をして進む方法。その総数を1,000,000,007 で割った余りを出力せよ。なお1,000,000,007 は素数である。

Sample Input 1

6 4 0

Sample Output 1

210

Sample Input 2

3 3 1

Sample Output 2

448

Sample Input 3

124 218 367

Sample Output 3

817857665
Problem G: スプリング・タイル

ある朝、あなたが目覚めると、そこはバネだらけの迷宮の中だった。

なぜ自分がこんな見知らぬ場所にいるのかはわからない。この場でじっと助けを待つという選択肢も
あるにはあるが、こういった迷宮の中に長居していると、いつかは必ず突風が吹いてきて吹き飛ばさ
れてしまうことを、あなたは経験上知っていた。しかし、突風が吹いてくるまでの時間は判断のしよ
うがない。そこであなたは、迷宮から脱出するまでに必要な移動回数の期待値が最小になるように行
動するのが最善の戦略だと考えた。

足元に落ちていた正体不明の巻物を拾ってためしに読んでみたところ、偶然にも迷宮の全体マップを
知覚することができた。さらに、たまたま持っていた草を飲むことで、すべてのワナの位置も知るこ
とができた。どうやらこの迷宮には、危険なモンスターやバネ以外のワナは存在しないらしい。

この迷宮は、いくつかの種類のタイルが長方形に並んだ形をしており、たとえば以下のようにあらわ
される。

########
#..##g.#
#*#.*#.#
#......#
#*s#*.*#
########

「.」：床。この上なら自由に歩き回ることができる。

「#」：壁。あなたは壁の中に入ることはできない。

「s」：あなたの最初の位置。このタイルの下は床になっている。

「g」：階段。このタイルの上に乗れば、迷宮を脱出したことになる。

「*」：バネ。このタイルの上に乗ると、いずれかの床の上（階段、バネのタイルは除く）にランダムに飛ばされる。それぞれの床に飛ばされる確率はすべて等しい。

タイルの種類は、この５つのいずれかである。

あなたは、現在乗っているタイルから隣り合ったタイルへ、上下左右いずれかの方向に１マスずつ移
動することができる。ただし、ナナメに移動することはできない。

迷宮のマップが与えられたとき、最善の戦略をとった場合に迷宮から脱出するまでに必要な移動回数
の期待値を求めよ。バネで飛ばされるのは移動回数には含めない。

Input

W H

c11 c12 ... c1w

c21 c22 ... c2w

:: :

ch1 ch2 ... ccw

入力の１行目には、整数W（3 ≤ W ≤ 500）と整数H（3 ≤ H ≤ 500）が、この順に空白区切りで書かれている。整数W は迷宮の横幅を、整数H は迷宮の縦幅をあらわす。

続くH 行には、迷宮のマップをあらわすW 個の文字が書かれている（空白区切りではない）。この部分の形式は、先に挙げた例のとおりである。なお、データ中に「s」と「g」は、それぞれちょうど１回ずつ出現する。また、迷宮の周囲１マスは、必ず壁で囲まれている。

なお、与えられる迷宮では、どのように移動し、バネでどのように飛ばされたとしても、「バネで飛
ばされる床を任意に設定できたとしても脱出不可能な状態」に陥ることはないと仮定してよい。

Output

最善の戦略をとったときに、脱出までにかかる移動回数の期待値を出力せよ。出力は誤差を含んでい
てもよいが、真の値との相対誤差が10-9 未満でなければならない。

Sample Input 1

8 6
########
#..##g.#
#*#.*#.#
#......#
#*s#*.*#
########

Sample Output 1

5.857142857143

Sample Input 2

21 11
#####################
#*#*.*.*.*.*.*.*.*#*#
#*#...............#*#
#*#.#.#.#.#.#.#.#.#*#
##.#.#.#.#.#.#.#.#.##
#...................#
##.#.#.#.#.#.#.#.#.##
#s#.#.#.#.#.#.#.#.#g#
#...................#
#...................#
#####################

Sample Output 2

20.000000000000

Sample Input 3

9 8
#########
#...#*.*#
#.*.#...#
#...#*.*#
#########
#.s....g#
#.*#.*..#
#########

Sample Output 3

5.000000000000
Problem H: ねこ鍋改造計画（仮）

あなたは、自宅にたくさんのねこを飼っている。そんなあなたの日課は、飼っているねこが土鍋の中
に入って昼寝している様子（通称：ねこ鍋）を撮影することだ。何匹かのねこが、鍋の中でいっしょ
に丸くなって眠る姿は、実に愛くるしい。

それぞれのねこには、「重さ」mi と「Cute」ci が定義されている。Cute とは、そのねこ1 匹だけを見たときの、愛らしさ・あどけなさ・しなやかさ・やわらかさ・ういういしさ、などを総合的に評価した数値であり、大きければ大きいほどそのねこは魅力的である。

また、ねこ鍋に対しては「UnCute」という数値が定義される。これは、ねこ鍋全体としてのアンバラ
ンスさをあらわす値であり、Cute とは逆に、小さければ小さいほど、そのねこ鍋はよいねこ鍋であ
る。ねこ鍋のUnCute は、中にいるねこのCute の最大値Cmax と最小値Cmin を用いて、Cmax - Cminとあらわされる。つまり、中にいるねこがみな同じくらいのCute を持っているねこ鍋が、よいねこ鍋である。

ねこ鍋を持ち運ぶときのことを考えると、ねこ鍋の重さ（＝中にいるねこの重さの総和）は、限界値
W 以下でなければならない。この条件をみたすようにねこ鍋に入ってもらうねこを選んで、ねこ鍋のUnCute を小さくしたいのだが、いったいどこまで小さくできるのだろうか。

……という問題を解いてすっかり満足した気になっていたのは、過去の話だ。

この前、あなたが家の倉庫を整理していたら、倉庫の中から古ぼけた土鍋が見つかった。これであな
たの家にある土鍋は２つ。そう、これからは、デュアルねこ鍋の時代なのだ！　ただのねこ鍋なども
う古い！

デュアルねこ鍋では、土鍋A はオスのねこ専用、もう片方の土鍋B はメスのねこ専用である。また、
デュアルねこ鍋のUnCute を定義するにあたっては、Cute のアンバランスさだけではなく、２つの
ねこ鍋の重さのアンバランスさも考慮に入れる必要がある。具体的には、重いほうのねこ鍋の重さを
Mmax、軽いほうのねこ鍋の重さをMmin とおくと（２つのねこ鍋の重さが同じときはMmax = Mmin）、デュアルねこ鍋のUnCute は、

max{Mmax - Mmin, Cmax - Cmin}

とあらわされる。なお、ここでのCmax とCmin は、ねこ鍋A の中またはねこ鍋B の中にいるねこのCute の最大値,最小値である。

ねこ鍋を持ち運ぶときのことを考えると、Mmaxは、限界値W 以下でなければならない。この条件をみたすようにデュアルねこ鍋に入ってもらうねこを選んで、デュアルねこ鍋のUnCute を小さくしたいのだが、いったいどこまで小さくできるのだろうか。

Input

NA NB W

mA,1 cA,1

mA,2 cA,2

.

.

.

mA,NA cA,NA

mB,1 cB,1

mB,2 cB,2

.

.

.

mB,NB cB,NB

入力の１行目には、整数NA（1 ≤ NA ≤ 500）と整数NB（1 ≤ NB ≤ 500）と整数W（1 ≤ W ≤ 10,000）が、空白区切りで書かれている。これは、あなたが飼っているオスのねこが全部でNA 匹、メスのねこが全部でNB 匹いることをあらわす。W はねこ鍋の重さの限界値である。

続くNA 行には、整数mA,i（1 ≤ mA,i ≤ 10,000）と整数cA,i（1 ≤ cA,i ≤ 1,000,000,000）が、空白区切りで書かれている。１＋ i 行目に書かれた整数mA,i とcA,i は、i 番目のオスのねこの重さがmA,i、Cute がcA,i であることをあらわす。

続くNB 行には、整数mB,i（1 ≤ mB,i ≤ 10,000）と整数cB,i（1 ≤ cB,i ≤ 1,000,000,000）が、空白区切りで書かれている。１＋ NA ＋ i 行目に書かれた整数mB,i とcB,i は、i 番目のメスのねこの重さがmB,i、Cute がcB,i であることをあらわす。

オスのねこにもメスのねこにも、重さがW 以下であるようなねこが、それぞれ１匹以上は存在すると仮定してよい。

Output

Mmax がW を超えないという条件のもとで、デュアルねこ鍋のUnCute の最小値を出力せよ。ただし、どちらのねこ鍋にも１匹以上のねこが入っていなければならない。

Sample Input 1

4 3 12
3 6
2 4
7 9
10 1
6 5
8 4
15 19

Sample Output 1

2

Sample Input 2

1 3 10
1 15
6 8
5 9
8 7

Sample Output 2

6

Sample Input 3

8 6 65
30 98
27 51
4 74
65 87
49 19
27 48
43 7
35 28
43 69
8 47
64 75
18 23
54 29
40 43

Sample Output 3

8
Problem J: 問題文担当者は働かない！

N 個の点からなる有向グラフがある。このグラフに閉路はない。それぞれの点には、いくつかの石が置かれている。このグラフを使って、２人のプレイヤーがゲームをする。おのおのの手番は、交互に訪れる。各プレイヤーは、自分の手番において、頂点v を選び、そこに置かれた石を１つ以上取り除く。その後、v からw に辺が張られているすべての頂点w について、w に置かれている石の個数を自由に変化させることができる（いくつ増やしても、いくつ減らしても、変化させなくてもよい）。これを繰り返して、最初に取る石がなくなった方の負けである。両者が最善をつくしたとき、先手と後手、どちらが勝つか。もしくは、いつまでもゲームが終わらないか。

「……いや、無理でしょう、これ」

「何が？」

「何がじゃなくて！　これにどうやって自然な問題設定をつけろって言うんですか」

「ははは。それを考えるのが君の仕事じゃないか。文章担当だろう？」

「丸投げにもほどがありますよ……。まずゲームのルールが不自然すぎるでしょう」

「そうかなぁ？　僕はよくある石取りゲームだと思うけどね」

「プレイヤーの意思で石を無尽蔵に増やせる石取りゲームがよくあってたまりますか！」

「お。君、今うまいこと言ったね」

「ええ、意思で石を……ってどうでもいいわ！　そっちも少しは考えてくださいよ」

「そうだねぇ。縊死した医師の遺志を継ぐ遺子の意思で石を取る、なんてどうだい？」

「考えるのはそこじゃねぇよ！　石取りゲームの話だよ！」

「違うのかい？　でも『取り』は鳥くらいしか同音異義語がなくて難しいんだよね」

「いったん言葉遊びから離れろや！　自然な問題設定を考えてくれって言ってるんですよ！」

「だからそれは君の仕事だろうに。僕はただの仲介役。原案担当と文章担当の間をとりもつだけさ」

「くそ……。原案担当め、どうしてこんな厄介な問題を……」

「原案担当者から君へのメッセージ。『フヒヒｗ　存分に苦しめ文章担当ｗｗ』だそうだよ」

「畜生あの野郎！　いつか一発殴る！」

「まあ、僕の『石が増える石取りゲームなんて実に設定がつけにくいと思わないかい？』ってアドバ
イスのおかげもあるだろうけどね」

「畜生お前もか！　いつかと言わず今殴る！」

「はっはっは。君が締め切りまでに文章担当としての役割を果たせないようなら、僕が勝手に問題文
を書いちゃうよ？」

「殴……って、え？　お前が書いてくれんの？」

「タイトルは『問題文担当者は働かない！』。本文には、僕たちのこの会話をそのまま掲載」

「頼むからやめて！　そんなふざけた問題が自分名義で世に出たら、これから皆になんて言われる
か！」

「はっはっは。締め切りも守れないような奴は、社会的に抹殺されて当然だよね」

「畜生！　こうなったら、意地でも自然な問題設定を思いついてやらあああああ！」

（※　結局そのまま掲載されました）

Input

N M

v1

v2

.

.

.

vN

a1 b1

a2 b2

.

.

.

aM bM

入力の１行目には、整数N（2 ≤ N ≤ 1,000）と整数M（1 ≤ M ≤ 10,000）が、空白区切りで書かれている。これは、有向グラフがN 個の点とM 本の辺からなることをあらわす。頂点には、1 番からN 番までの番号がふられている。

続くN 行には、整数vi（1 ≤ vi ≤ 10,000）が書かれている。１＋ i 行目に書かれた整数vi は、i 番の点に最初はvi 個の石が置かれていることをあらわす。

続くM 行には、整数ai（1 ≤ ai ≤ N）と整数bi（1 ≤ bi ≤ N）が、空白区切りで書かれている。１＋N ＋ i 行目に書かれた整数ai とbi は、ai 番の点からbi 番の点へ張られている辺が存在することをあらわす。ある点から自分自身へと張られる辺は存在せず、ある点A からある点B へ張られる辺は高々１本である。

与えられた有向グラフには閉路がないと仮定してよい。

Output

両プレイヤーが自身の勝利を目指して最善をつくしたとき、先手が勝つならば1 を、後手が勝つなら
ば2 を、いつまでもゲームが終わらないならば0 を出力せよ。

Sample Input 1

6 5
7
14
5
11
2
5
1 2
2 3
3 4
4 5
5 6

Sample Output 1

2

Sample Input 2

5 7
295
127
350
982
426
1 5
3 5
4 2
3 1
3 4
5 4
3 2

Sample Output 2

1

Sample Input 3

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

Sample Output 3

2
Carpenters' Language

International Carpenters Professionals Company (ICPC) is a top construction company with a lot of expert carpenters.
What makes ICPC a top company is their original language.

The syntax of the language is simply given in CFG as follows:

S -> SS | (S) | )S( | ε

In other words, a right parenthesis can be closed by a left parenthesis and a left parenthesis can be closed by a right parenthesis in this language.

Alex, a grad student mastering linguistics, decided to study ICPC's language.
As a first step of the study, he needs to judge whether a text is well-formed in the language or not.
Then, he asked you, a great programmer, to write a program for the judgement.

Alex's request is as follows: You have an empty string S in the beginning, and construct longer string by inserting a sequence of '(' or ')' into the string.
You will receive q queries, each of which consists of three elements (p, c, n), where p is
the position to insert, n is the number of characters to insert and c is either '(' or ')', the character to insert.
For each query, your program should insert c repeated by n times into the p-th position of S from the beginning.
Also it should output, after performing each insert operation, "Yes" if S is in the language and "No" if S is not in the language.

Please help Alex to support his study, otherwise he will fail to graduate the college.

Input

The first line contains one integer q (1 \leq q \leq 10^5) indicating the number of queries, follows
q lines of three elements, p_i, c_i, n_i, separated by a single space (1 \leq i \leq q, c_i = '(' or ')',
0 \leq p_i \leq length of S before i-th query, 1 \leq n \leq 2^{20}).
It is guaranteed that all the queries in the input are valid.

Output

For each query, output "Yes" if S is in the language and "No" if S is not in the language.

Sample Input 1

3
0 ( 10
10 ) 5
10 ) 5

Output for the Sample Input 1

No
No
Yes

Sample Input 2

3
0 ) 10
10 ( 5
10 ( 5

Output for the Sample Input 2

No
No
Yes

Sample Input 3

3
0 ( 10
10 ) 20
0 ( 10

Output for the Sample Input 3

No
No
Yes
Kth Sentence

A student, Kita_masa, is taking an English examination.
In this examination, he has to write a sentence of length m.

Since he completely forgot the English grammar, he decided to consider all sentences of length m constructed by concatenating the words he knows and write the K-th sentence among the candidates sorted in lexicographic order.
He believes that it must be the correct sentence because K is today's lucky number for him.

Each word may be used multiple times (or it's also fine not to use it at all) and the sentence does not contain any extra character between words.
Two sentences are considered different if the order of the words are different even if the concatenation resulted in the same string.

Input

The first line contains three integers n (1 \leq n \leq 100), m (1 \leq m \leq 2000) and K (1 \leq K \leq 10^{18}), separated by a single space.
Each of the following n lines contains a word that Kita_masa knows.
The length of each word is between 1 and 200, inclusive, and the words contain only lowercase letters.
You may assume all the words given are distinct.

Output

Print the K-th (1-based) sentence of length m in lexicographic order.
If there is no such a sentence, print "-".

Sample Input 1

2 10 2
hello
world

Output for the Sample Input 1

helloworld

Sample Input 2

3 3 6
a
aa
b

Output for the Sample Input 2

aba

Sample Input 3

2 59 1000000000000000000
a
b

Output for the Sample Input 3

-
A Light Road

There is an evil creature in a square on N-by-M grid (2 \leq N, M \leq 100),
and you want to kill it using a laser generator located in a different square.
Since the location and direction of the laser generator are fixed,
you may need to use several mirrors to reflect laser beams.
There are some obstacles on the grid and you have a limited number of mirrors.
Please find out whether it is possible to kill the creature,
and if possible, find the minimum number of mirrors.

There are two types of single-sided mirrors;
type P mirrors can be placed at the angle of 45 or 225 degrees from east-west direction,
and type Q mirrors can be placed with at the angle of 135 or 315 degrees.
For example, four mirrors are located properly, laser go through like the following.

Note that mirrors are single-sided,
and thus back side (the side with cross in the above picture) is not reflective.
You have A type P mirrors, and also A type Q mirrors (0 \leq A \leq 10).
Although you cannot put mirrors onto the squares with the creature or the laser generator,
laser beam can pass through the square.
Evil creature is killed if the laser reaches the square it is in.

Input

Each test case consists of several lines.

The first line contains three integers, N, M, and A.
Each of the following N lines contains M characters,
and represents the grid information.
'#', '.', 'S', 'G' indicates obstacle, empty square,
the location of the laser generator, and the location of the evil creature, respectively.
The first line shows the information in northernmost squares
and the last line shows the information in southernmost squares.
You can assume that there is exactly one laser generator and exactly one creature,
and the laser generator emits laser beam always toward the south.

Output

Output the minimum number of mirrors used if you can kill creature, or -1 otherwise.

Sample Input 1

3 3 2
S#.
...
.#G

Output for the Sample Input 1

2

Sample Input 2

3 3 1
S#.
...
.#G

Output for the Sample Input 2

-1

Sample Input 3

3 3 1
S#G
...
.#.

Output for the Sample Input 3

2

Sample Input 4

4 3 2
S..
...
..#
.#G

Output for the Sample Input 4

-1
Matrix Operation

You are a student looking for a job.
Today you had an employment examination for an IT company.
They asked you to write an efficient program to perform several operations.
First, they showed you an N \times N square matrix and a list of operations.
All operations but one modify the matrix, and the last operation outputs the character in a specified cell.
Please remember that you need to output the final matrix after you finish all the operations.

Followings are the detail of the operations:

WR r c v
(Write operation) write a integer v into the cell (r,c) (1 \leq v \leq 1,000,000)

CP r1 c1 r2 c2
(Copy operation) copy a character in the cell (r1,c1) into the cell (r2,c2)

SR r1 r2
(Swap Row operation) swap the r1-th row and r2-th row

SC c1 c2
(Swap Column operation) swap the c1-th column and c2-th column

RL
(Rotate Left operation) rotate the whole matrix in counter-clockwise direction by 90 degrees

RR
(Rotate Right operation) rotate the whole matrix in clockwise direction by 90 degrees

RH
(Reflect Horizontal operation) reverse the order of the rows

RV
(Reflect Vertical operation) reverse the order of the columns

Input

First line of each testcase contains nine integers.
First two integers in the line, N and Q, indicate the size of matrix and the number of queries, respectively (1 \leq N,Q \leq 40,000).
Next three integers, A B, and C, are coefficients to calculate values in initial matrix (1 \leq A,B,C \leq 1,000,000),
and they are used as follows: A_{r,c} = (r * A + c * B) mod C where r and c are row and column indices, respectively (1\leq r,c\leq N).
Last four integers, D, E, F, and G, are coefficients to compute the final hash value mentioned in the next section (1 \leq D \leq E \leq N, 1 \leq F \leq G \leq N, E - D \leq 1,000, G - F \leq 1,000).
Each of next Q lines contains one operation in the format as described above.

Output

Output a hash value h computed from the final matrix B by using following pseudo source code.

h <- 314159265
for r = D...E
for c = F...G
h <- (31 * h + B_{r,c}) mod 1,000,000,007

where "<-" is a destructive assignment operator, "for i = S...T" indicates a loop for i from S to T (both inclusive), and "mod" is a remainder operation.

Sample Input 1

2 1 3 6 12 1 2 1 2
WR 1 1 1

Output for the Sample Input 1

676573821

Sample Input 2

2 1 3 6 12 1 2 1 2
RL

Output for the Sample Input 2

676636559

Sample Input 3

2 1 3 6 12 1 2 1 2
RH

Output for the Sample Input 3

676547189

Sample Input 4

39989 6 999983 999979 999961 1 1000 1 1000
SR 1 39989
SC 1 39989
RL
RH
RR
RV

Output for the Sample Input 4

458797120