alexjercan/bugnet huggingface dataset:
Problem D: Change

ICPC World Finals 2日目

ティー氏らは空港のターミナルについた。 これから飛行機を乗り継ぎ敵地R国に乗り込むのである。 我々はD国を経由するため、手持ちのお金を2種類の通貨に両替せねばならない。

ケー氏「ティーさんはどのように両替しますか？」

ティー氏「ハフハフハフハフハフハフハフハフ」

ケー氏「なるほど。私も20,000円をD国用に5,000円、R国用に15,000円割り振ろうと思います」

ティー氏「ハフハフハフハフハフハフハフハフ」

ケー氏「あれ？変ですね。両替結果が私と違いますね…。」

問題

ある旅行者は、日本を旅立ち、D国（通貨単位D）、R国（通貨単位R）を観光し、日本に帰ってくることを考えている。 今、\( M \)円持っている。 \( c_{D} \)[D]、\( c_{R} \)[R]を各国で消費することが分かっているので、 お金が不足しないように両替したい。 \( x \)円をD国のお金に両替すると\( \lfloor \frac{r_{D}x}{100} \rfloor \)[D]に、 \( x \)円をR国のお金に両替すると\( \lfloor \frac{r_{R}x}{100} \rfloor \)[R]になる。

例えば、 \( r_{D}=11, c_{D}=10 \)の時に 150円をD国のお金に両替すると\( \lfloor \frac{11 \times 150}{100} \rfloor = \)16[D]になるためお金は不足しない。 しかし、50円しか両替しないと5[D]になり10[D]に満たないためお金が不足する。

また、帰国時には手持ちのお金を全て日本円に両替する。 \( x \)[D]を日本円に両替すると\( \lfloor \frac{100x}{r_{D}} \rfloor \)円に、 \( x \)[R]を日本円に両替すると\( \lfloor \frac{100x}{r_{R}} \rfloor \)円になる。

先の1つ目の例では、 得られた16[D]のうち10[D]を消費するため6[D]余る。 これを日本円に両替すると\( \lfloor \frac{100 \times 6}{11} \rfloor = 54\)円になる。

出国時に日本円の最適な両替を行った時、帰国時に最終的に手元に戻ってくる日本円の最大額を求めよ。 いかなる両替を行なっても、D国またはR国のいずれかでお金が不足する場合には"-1"と出力せよ。

※\( \lfloor x \rfloor \)は、\(x\)を超えない最大の整数を表す。

入力

M rD rR cD cR

1行目に 現在手持ちの日本円の額\(M\)、 日本円とD国の通貨単位との両替レート\( r_{D} \)、 日本円とR国の通貨単位との両替レート\( r_{R} \)、 D国でのお金の消費額\( c_{D} \)、 R国でのお金の消費額\( c_{R} \)が空白区切りで与えられる。

出力

手元に戻ってくる日本円の最大額を1行に出力せよ。 いかなる両替を行なっても、D国またはR国のいずれかでお金が不足する場合は"-1"を出力せよ。

制約

\( 0 \leq M \leq 10^{12}(= 1000000000000) \)

\( 1 \leq r_{D}, r_{R} \leq 100 \)

\( 0 \leq c_{D}, c_{R} \leq 10^{12}(= 1000000000000) \)

入出力例

入力1

20000 3 1 20 100

出力1

9333

667円をD国のお金に、10,000円をR国のお金に変換すれば、それぞれ20[D]、100[R]が得られる。

入力2

1000000000000 3 1 20 100

出力2

999999989333

この旅行者は大金持ちである。

入力3

0 3 1 20 100

出力3

-1

この旅行者は一文無しであり、どこにも行けない。
Problem E: Pie Chart is as easy as
pie.

ICPC World Finals 3日目

この日、ティー氏はチーム内の言語使用割合を調べていた。
珍しいことに、我々のチームは使用言語を統一していない。 調査の結果、2人がC++、1人がJavaを使っていることが分かった。
さて、これをパイチャート（円グラフ）にしてみよう。

おや、Javaの使用割合が少ないように見えるな。
どう考えてもこんなはずはないので少々手を加えよう。 これは最近流行りのテクニックであり、
「パイチャートの中心座標をずらす」というものだ。 （皆さんはマネしてはいけません。）

うむ、これでバランスがとれた。 ところで面積はどのように変わったのだろう？

問題

半径\(r\)、項目数\(n\)のパイチャート（円グラフ）が与えられる。
項目\(i\)の構成比率は\( p_{i} \)[%]であり、座標\( (0, r)
\)から時計回りに項目が割り当てられる（下図を参照）。 パイチャートの中心座標が\( (0, 0) \)から\( (x, y)
\)に変化した時、 各項目の占める面積は何%変化するかを求めよ。

入力

r x y n
p1 p2 … pn

1行目に パイチャートの半径\(r\)、中心のx座標\(x\)、y座標\(y\)、項目数\(n\)が空白区切りで与えられる。
2行目には、 項目\(i\)の構成比率\( p_{i} \)[%]が空白区切りで与えられる。

出力

1行目に各項目の占める面積の変化率[%]を「整数に切り捨てた値」を空白区切りで出力せよ。

制約

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

\( r = 100 \)

\( x^{2} + y^{2} < r^{2} \)

\( 2 \leq n \leq 10 \)

\( p_{i} > 0 (1 \leq i \leq n) \)

\( \sum_{1 \leq i \leq n}p_{i} = 100 \)

\( (x, y) \)が高々距離\( 10^{-3} \)移動しても答えが変化しないことが保証される

入出力例

入力1

100 50 -50 2
67 33

出力1

71 156

項目1の面積は約21048から約15153に変化した。 変化率は15153/21048 ≒
71.99%。

項目2の面積は約10367から約16262に変化した。 変化率は16262/10367 ≒
156.86%。

入力2

100 -50 0 4
10 20 30 40

出力2

115 144 113 64

項目ごとのおよその面積の変化は以下の通り。

項目1: 3142 → 3619

項目2: 6283 → 9078

項目3: 9425 → 10675

項目4: 12566 → 8044

入力3

100 70 -70 8
1 24 1 24 1 24 1 24

出力3

167 97 27 10 32 102 172 189
Problem F: MLE

ICPC World Finals 4日目

暗い嵐の夜だった。 夢の中でティー氏はタイムスリップしていた。
ICPCの会場のようだが何かおかしい…。 もしや…これは、N年前（Nは自然数）のICPCなのか…? 混乱の内に競技は開始してしまった。
だが慌てる必要はない。 きっと問題も簡単に違いない。 例えばこれなどはソートするだけで解けてしまうはずではないか。
冷静にコードを書き上げ、速やかにSubmit。

しかしその結果は…Memory Limit Exceeded…?!

問題

C++言語については以下のコード

long long int a[n];
unsigned long long int x = x0;
for (int i = 0; i < n; i++) {
a[i]=(long long int)x;
x ^= x << 13;
x ^= x >> 7;
x ^= x << 17;
}

Java言語については以下のコード

long[] a = new long[n];
long x = x0;
for(int i = 0; i < n; i++){
a[i] = x;
x ^= x << 13;
x ^= x >>> 7;
x ^= x << 17;
}

で与えられる擬似乱数列\( a[0], a[1], \cdots, a[n-1] \)を昇順にソートする。 \(k\)番目の数（\(
a[k-1] \)）を答えよ。

入力

n k x0

1行目に 擬似乱数列の長さ\(n\)、 求めるインデックス\(k\)、 コード中の初期値\(x0\) が空白区切りで与えられる。

出力

問題文にて定義された擬似乱数列において\(k\)番目に小さい数を1行に出力せよ。

制約

\( 0 \leq x0 \leq 9 \)

\( 1 \leq n \leq 10^{8}(= 100000000) \)

\( 1 \leq k \leq n \)

入出力例

入力1

20 10 1

出力1

-768720241707614171

この入力において生成される数列は以下の通りである。

1
1082269761
1152992998833853505
-7269227409276787159
-768720241707614171
-8787613929710185883
-670945072575735807
-6753709453369041295
-4166779903597258483
9024654201992055039
8332670729032836398
2074683623940568804
-1176172910426220663
5632491372296299238
-8006175397324373085
-8536891001451786268
-3486562341448986757
1956468987595729445
-6260278484400246991
1076885984028793263

入力2

1000000 100 2

出力2

-9221458681145860019

入力3

100000000 10000000 3

出力3

-7379326796154077070
Problem G: Get Lost

ICPC World Finals 5日目

ティー氏はR国の街で迷ってしまった。
困ったことに、街並みが似ているため、自分が今どこにいるかが全く分からない。
R国は「おそろしあ」であるから、敵に襲撃される前にホテルへ戻らねばならない。 幸い、どのように曲がって来たかだけは覚えているので、
行き当たりばったりに進んでみよう。

問題

\( w \times h \)マスの二次元格子状のマップがある。 左上のマスの座標を\(
(1, 1) \)、右下のマスの座標を\( (w, h) \)とする。 マップの周りは壁で囲まれており、
\(n\)個の障害物が座標\( (x_{i}, y_{i}) (1 \leq i \leq n) \)に置かれている。
さらに、命令列\( r_{1}r_{2} \cdots r_{m} \)と目的座標\( (g_{x}, g_{y})
\)が与えられる。 開始座標と進行方向の設定後、歩行者は以下の移動規則に従って歩行を開始する。

1. カウンタを\( i=1
\)に初期化し、開始座標と進行方向（上・下・左・右）を設定する。

2. 壁・障害物に出会うまで直進する。

3. 壁・障害物の手前で次のいずれかを実行する。

3. a. \( i>m \)、すなわち命令が無ければ歩行を終了する。

3. b. 命令\( r_{i} \)がLならば左、Rならば右へ方向転換する。

4. \( i \)をインクリメントする。

5. 2.に戻る。

歩行開始から歩行終了までに通過した座標（開始座標を含む）に目的座標\( (g_{x},
g_{y}) \)が含まれれば、歩行者が目的地に辿り着いたと解釈する。
目的地に辿り着くことのできる開始座標・進行方向の組み合わせは何通りあるかを求めよ。
ただし、開始座標には障害物やマップ外の座標を設定することはできないとする。 （目的座標を設定することはできる。）

入力

w h gx gy n
x1 y1
…
xn yn
r1r2 … rm

1行目に マップの横幅\(w\)、縦幅\(h\)、目的地のx座標\( g_{x} \)、目的地のy座標\( g_{y}
\)、障害物の数\(n\)が空白区切りで与えられる。 2行目から\( n+1 \)行目に 各障害物の座標\( (x_{i},
y_{i}) \)が空白区切りで与えられる。 \( n+2 \)行目に長さ\(m\)の命令列\( r_{1}r_{2} \cdots
r_{m} \)が与えられる。

出力

目的地に辿り着けるような 開始座標・進行方向の組み合わせの数を1行に出力せよ。

制約

入力は全て整数である

\( 2 \leq w, h \leq 10^{5}(= 100000) \)

\( 0 \leq n \leq 10^{5}(= 100000) \)

\( 1 \leq g_{x}, x_{i} \leq w \)

\( 1 \leq g_{y}, y_{i} \leq h \)

\( (x_{i}, y_{i}) \not = (g_{x}, g_{y}) (1 \leq i \leq n)
\)

\( (x_{i}, y_{i}) \not = (x_{j}, y_{j}) (i \not = j) \)

\( r_{i} \in \{ L, R \} (1 \leq i \leq m) \)

\( 1 \leq m \leq 20 \)

入出力例

入力1

3 3 3 2 2
1 1
2 2
RL

出力1

9

以下の5通りの歩行に加え、 目的座標を開始座標とする歩行（4通り）が目的座標を通過する。

入力2

4 4 3 1 4
1 1
3 2
1 3
4 3
RR

出力2

13

以下の開始座標・進行方向から開始する歩行は目的座標を通過する。

入力3

100000 100000 46597 49716 17
38713 77141
46598 78075
66177 49715
58569 77142
48303 12742
32829 65105
32830 78076
70273 27408
48302 21196
27119 54458
38714 65104
46598 54457
27118 12743
60242 21197
60241 1101
58568 27409
93581 1100
LLRRLLLLRRLL

出力3

647505
Problem H: Brainf*ck

BさんはBrainf*ckが大好きで、学校で出された課題も全てBrainf*ckを使って提出している。
最近そんなBさんに洗脳され、先生が課題を解く言語をBrainf*ckに限定してしまった。

このままでは皆が単位を落としてしまう。
あなたは、Brainf*ckプログラムを生成するプログラムを作ることで、皆の単位を救い出す手伝いをすることにした。

もちろん、Brainf*ckプログラムを生成するプログラムはBrainf*ckで記述する必要はない。

問題

指定された文字列\( s \)を出力するBrainf*ckプログラムを生成せよ。

Brainf*ck言語仕様

ジャッジで用いるBrainf*ckの言語仕様を記す。

Brainf*ckプログラムは文字列で記述される。
プログラム文字列は角括弧([および])の対応が取れている必要があるが、それ以外の制限はない。

Brainf*ckプログラムが実行される時、バイト配列とその要素を指し示すポインターを持つ。バイト配列は無限の大きさを持ち、8bit非負整数の情報を保持することができる。
これをC言語で表すと次のようになる。

unsigned char memory[100000]; // バイト配列（実際にはもっと広大な領域を確保する）
unsigned char *ptr = memory; // バイト配列の要素を指し示すポインター

Brainf*ckでは1つの命令は1文字で表され、命令には以下の7種類がある。

文字

意味

C言語での記述法

+

ポインターが示すバイト配列の要素の値を1増やす。値が255の時は0になる。

(*ptr)++;

-

ポインターが示すバイト配列の要素の値を1減らす。値が0の時は255になる。

(*ptr)--;

>

ポインターが示すバイト配列の要素の位置を正に1ずらす。

ptr++;

<

ポインターが示すバイト配列の要素の位置を負に1ずらす。

ptr--;

[

ポインターが示すバイト配列の要素の値が0ならば、対応する]に飛ぶ。そうでなければ次の命令に進む。

while(*ptr) {

]

ポインターが示すバイト配列の要素の値が0ならば、対応する[に飛ぶ。そうでなければ次の命令に進む。

} do while(*ptr);

.

ポインターが示すバイト配列の要素の値をASCIIコードと見なし、文字を出力する。

putchar(*ptr);

命令は先頭から順に実行され、命令を表す文字ではない文字はコメントとして無視される。

以上のBrainf*ckの仕様はおおよそ一般に使われているBrainf*ckと同様なものなので、http://ja.wikipedia.org/wiki/Brainfuckなどを参考にすることができる。ただし、ジャッジに用いるBrainf*ckは、一文字入力命令を使用することはできないので注意すること。

入力

1行に1000文字以内の文字列\( s \)が与えられる。

出力

Brainf*ckコードを20000文字以内で出力せよ。実行結果が\( s
\)に一致した任意のプログラムがAcceptされる。

制約

\( 1 \leq |s| \leq 1000 \)

\( s \)はASCII文字列

\( s \)にはASCIIコード33〜126の文字しか含まれない（記号、英字、数字のみで空白や制御文字を含まない）

出力したプログラムの長さは空白、改行、コメントを含めて\( 20000 \)文字までを許容する

命令は\( 10^7 \)回実行されるとストップする

Brainf*ckプログラムは最後に改行を出力してはならない

入出力例

入力1

ABC

出力1

++++++++[>++++++++<-]>+.+.+.

入力2

HelloWorld!!

出力2

+++++++++[>++++++++<-]>.<+++++[>+++++<-]>++++.+++++++..+++.[>+>+<<-]++++[>------<-]>.>.+++.--
----.--------.[-]++++++[>+++++<-]>+++..

入力に空白が含まれることはない。

入力3

!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~

出力3

+++++++++++++++++++++++++++++++++.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+
+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+
.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.

このケースは33から126のASCIIコードを順番に並べたものである。
Problem I: Reverse Game

あるところにオセロが趣味な女の子がいました。時間があるときに家族とオセロを楽しんでいます。

ある日、女の子はいつものようにオセロで遊ぼうとしました。ところが、みんな忙しくて誰も遊んでくれませんでした。
そこでオセロのボードとこまを使って１人で遊べるゲームを考え出しました。

問題

縦\( R \)マス、横\( C \)マスのマス目全てにオセロの駒が上面が黒あるいは白になるように配置されている。

以下の図のように「あるマスを選んで、その上下左右斜め方向にある駒を全て裏返す」という操作を繰り返し行うことを考える。
全ての駒の上面を白にするような操作の仕方の個数を求めよ。 ただし、以下の条件を満たす必要がある。

同じマスに二度操作を行うことはできない

操作の順序は区別しない

全ての駒の上面が白になってから操作を続けることは可能である

入力

1行目に整数\( R \)と整数\( C \)がそれぞれ空白区切りで与えられる。

続けて\( R \)行に、それぞれ\( C \)個の整数値(0か1)が与えられる。\( r \)行目の\(
c \)個目の整数は、マス目(r,c)の状態を表す。

1は上面が黒であることを、0は上面が白であることを表す。

出力

盤面の全ての駒の上面を白にすることができるなら、そのような操作の仕方の個数を\(
1000000009 (= 10 ^ 9 + 9) \)で割った余りを1行に出力せよ。

盤面の全ての駒の上面を白にすることができないなら、\( 0 \)と1行に出力せよ。

制約

\(1 \leq R \leq 50, 1 \leq C \leq 50\)

サンプル入出力

入力1

1 3
1 1 1

出力1

4

\( \{(1,1)\}, \{(1,2)\}, \{(1,3)\}, \{(1,1),(1,2),(1,3)\} \)の4通りである。

入力2

1 3
1 0 1

出力2

0

入力3

2 4
0 1 0 1
1 0 1 0

出力3

1
Problem J: Avant-garde Art

ICPC World Finals 6日目

ロシア構成主義とは、1910年代半ばに始まったソ連における芸術運動である。
R国に長く滞在していたティー氏は、 そのようなものに感化され、 ICPC World Finalsのリハーサル中にも関わらず、
クールなデザインを作ることにした。 ティー氏は語る： 「記号は円と線分だけで充分だ。
線分をいかに美しく交差させるかが重要である。」

問題

円周に\(n\)個の座標\( 1, 2, …, n \)を等間隔に割り当てる。
各座標からはちょうど1本の線分が出ており、 座標\( i \)の線分は異なる座標\( a_{i} \)に結ばれている。
（逆に、座標\( a_{i} \)の線分は座標\( a_{a_{i}} = i \)に結ばれている。） この状態から高々\( k
\)本の線分を（座標・長さに関係なく自由に）円周上に結び直すことが出来る。 互いに交差している線分の集合の最大サイズを答えよ。

入力

n k
a1 a2 … an

1行目に座標の数\(n\)、結び直すことのできる線分の数\(k\)が空白区切りで与えられる。
2行目に座標\(i\)の線分が結ばれる座標を表す\( a_{i} \)が空白区切りで与えられる。

出力

高々\(k\)本の線分を結び直した後に
互いに交差している線分の集合の最大サイズを1行に出力せよ。

制約

\( 2 \leq n \leq 8000 \)

\(n\)は偶数

\( 0 \leq k \leq \min(n/2, 20) \)

\( 1 \leq a_{i} \leq n \)

\( a_{i} \not = i \)

線分を自分自身に結ぶことは無い

\( a_{i} \not = a_{j} (i \not = j) \)

同じ座標に2本以上の線分が結ばれることは無い

\( a_{a_{i}} = i \)

\(i\)から\(j\)に線分が結ばれているならば、\(j\)から\(i\)に線分が結ばれている

入出力例

入力1

8 0
7 4 6 2 8 3 1 5

出力1

2

互いに交差する線分は下図の赤い線分で表される。

入力2

8 1
7 4 6 2 8 3 1 5

出力2

3

1,7を結ぶ線分を下図のように結び直せば互いに交差する3つの線分が得られる。

入力3

8 0
5 6 7 8 1 2 3 4

出力3

4

全ての線分は互いに交差しているため、交差する最大の線分の数は4となる。
Problem K: Collector

※この物語はフィクションであり、実在の人物、団体などとは一切関係がありません。

最近ソーシャルゲームがとても人気で、
たくさんの会社がソーシャルゲームを開発しています。

あなたは競合しているソーシャルゲーム開発会社の一つにスパイとして潜入しています。

問題

あなたの務めている会社では、ソーシャルゲームを開発している。
開発しているゲームは、カードを集めて戦うゲームであり、1回300円の有料”ガチャガチャ”を収益の柱にしている。
このゲームのカードには、”ノーマル”、”レア”、”Sレア”の3種類がある。”Sレア”カードはN種類存在する。
有料”ガチャガチャ”では、1回行うごとに97％の確率で1枚のレアカードが手に入り、3%の確率で1枚のSレアカードが手に入る。

有料”ガチャガチャ”における各Sレアカードの出現割合(合計3%)を操作する権限を持っているあなたは、
会社の利益を「減少」させることにした。

まず、様々なプレイヤーの有料”ガチャガチャ”の利用傾向を調べたところ、 「各プレイヤーは、
各々の好きなSレアカードを引くと、 満足し、その後は”ガチャガチャ”の利用を行わない」ということが明らかになった。 以上の情報より、
あなたは ”各プレイヤーは、特定のSレアカードを好み、そのSレアカードを引くまでガチャガチャをし続ける”
という仮定の下で会社の利益をモデル化した。

すなわち会社の利益とは、 Sレアカードiを好む人の割合 ×
Sレアカードiが得られるまでの消費金額の期待値 の総和である。

Sレアカードの出現割合を適切に操作することで、 会社の利益を「最小化」せよ。

ただし、出現割合は以下の条件を満たさなければならない。

Sレアカード全体の出現割合の和は3%である

各Sレアカードの出現割合は最低0.01%である

入力

N (Sレアカードの種類)
P_1 (カード1が好きな人の割合)
P_2 (カード2が好きな人の割合)
...
P_N (カードNが好きな人の割合)

出力

問題文で定義された会社の利益の最小値を出力せよ。

制約

\( N \)は整数

\( 1 \leq N \leq 300 \)

\( 0.0 \leq P_i (1 \leq i \leq N) \leq 1.0 \)

\( P_1 + P_2 + \cdots + P_N = 1.0 \)

\( P_i \)は小数点以下5桁まで与えられる

誤差は相対\( 10 ^ {-6} \) まで許容される

入出力例

入力1

1
1.00000

出力1

10000

入力2

2
0.00001
0.99999

出力2

10063.3444816

カード1は\( 0.01% \)の割合で出現し、カード2は\( 2.99% \)の割合で出現するように設定する。

入力3

2
0.50000
0.50000

出力3

20000.0000000
Problem L: The Return of FizzBuzz

ICPC World Finals 7日目

いよいよ明日はICPC World Finalsの本番である。
ティー氏はあるオンラインジャッジ(Aru Online Judge)で練習をすることにした。
問題一覧を眺めているとFizzBuzzという問題が目についた。
この問題は、FizzBuzzゲームで得られる発言のn文字目から20文字を出力するというものだ。

…ふぅ。あっという間に解けてしまった。 これでは簡単すぎた。
入力と出力を逆にした問題を作ってみることにしよう。

問題

FizzBuzzとは、1以上の整数を順に、以下のルールに従って発言していくゲームである。

3で割り切れる時には「Fizz」

5で割り切れる時には「Buzz」

3と5の両方で割り切れる時には「FizzBuzz」

それ以外の時はその数字

ゲームの進行状況を以下に示す。

1, 2, Fizz, 4, Buzz, Fizz, 7, 8, Fizz, Buzz,
11, Fizz, 13, 14, FizzBuzz, 16, …

得られた発言を結合することで得られる（無限長の）文字列をFizzBuzz Stringと呼ぶ。
ある文字列\(s\)が与えられる。 \(s\)がFizzBuzz Stringの部分文字列として出現するかを判定し、
出現する場合には最初に出現するインデックスを求めよ。

入力

n
s1
s2
…
sn

入力は複数のテストケースからなる。 1行目にテストケース数\(n\)が与えられる。 2行目から\( n+1
\)行目は各テストケースに対応し、 文字列\( s_{i} \)が1行で与えられる。

出力

\(i\)番目の文字列\( s_{i} \)について、 \( s_{i}
\)がFizzBuzz Stringの部分文字列として出現する場合には最初に出現するインデックスを(1-indexで)、
出現しない場合には"-1"を\(i\)行目に出力せよ。

制約

\( 1 \leq n \leq 20 \)

文字列は文字\( \{ 0,1,\cdots,8,9
,\mbox{F},\mbox{B},\mbox{i},\mbox{u},\mbox{z} \} (1 \leq i \leq n)
\)からなる。

文字列の長さは1以上15以下である。

入出力例

入力1

6
78Fizz
98FizzBuzz101
FizzBu
izzFiz
111111111111111
123456789

出力1

16
304
18
-1
7703703700
7795884765

入力例は6つのテストケースからなる。 それぞれ以下の発言に対応する。

…, Buzz, Fizz, 7, 8, Fizz, Buzz, …

…, Fizz, 97, 98, Fizz, Buzz, 101, Fizz, …

…, 7, 8, Fizz, Buzz, 11, 12, …

存在しない

…, 1111111109, FizzBuzz, 1111111111,
1111111112, Fizz, 1111111114, …

…, 1123456787, Fizz, 1123456789, Buzz, Fizz, …
Problem Statement

We found a dictionary of the Ancient Civilization Mayo (ACM) during excavation of the ruins.
After analysis of the dictionary, we revealed they used a language that had not more than 26 letters.
So one of us mapped each letter to a different English alphabet and typed all the words in the dictionary into a computer.

How the words are ordered in the dictionary, especially whether they are ordered lexicographically, is an interesting topic to many people.
As a good programmer, you are requested to write a program to judge whether we can consider the words to be sorted in a lexicographical order.

Note:
In a lexicographical order, a word always precedes other words it is a prefix of.
For example, ab
precedes abc,
abde, and so on.

Input

The input consists of multiple datasets. Each dataset is formatted as follows:

n
string_1
...
string_n

Each dataset consists of n+1 lines.
The first line of each dataset contains an integer that indicates n (1 \leq n \leq 500).
The i-th line of the following n lines contains string_i, which consists of up to 10 English lowercase letters.

The end of the input is 0, and this should not be processed.

Output

Print either yes or
no in a line for each dataset, in the order of the input.
If all words in the dataset can be considered to be ordered lexicographically, print yes.
Otherwise, print no.

Sample Input

4
cba
cab
b
a
3
bca
ab
a
5
abc
acb
b
c
c
5
abc
acb
c
b
b
0

Output for the Sample Input

yes
no
yes
no
Problem Statement

You are given a connected undirected graph which has even numbers of nodes.
A connected graph is a graph in which all nodes are connected directly or indirectly by edges.

Your task is to find a spanning tree whose median value of edges' costs is minimum.
A spanning tree of a graph means that a tree which contains all nodes of the graph.

Input

The input consists of multiple datasets.

The format of each dataset is as follows.

n m
s_1 t_1 c_1
...
s_m t_m c_m

The first line contains an even number n (2 \leq n \leq 1,000) and an integer m (n-1 \leq m \leq 10,000).
n is the nubmer of nodes and m is the number of edges in the graph.

Then m lines follow, each of which contains s_i (1 \leq s_i \leq n), t_i (1 \leq s_i \leq n, t_i \neq s_i) and c_i (1 \leq c_i \leq 1,000).
This means there is an edge between the nodes s_i and t_i and its cost is c_i.
There is no more than one edge which connects s_i and t_i.

The input terminates when n=0 and m=0.
Your program must not output anything for this case.

Output

Print the median value in a line for each dataset.

Sample Input

2 1
1 2 5
4 6
1 2 1
1 3 2
1 4 3
2 3 4
2 4 5
3 4 6
8 17
1 4 767
3 1 609
8 3 426
6 5 972
8 1 607
6 4 51
5 1 683
3 6 451
3 4 630
8 7 912
3 7 43
4 7 421
3 5 582
8 4 538
5 7 832
1 6 345
8 2 608
0 0

Output for the Sample Input

5
2
421
Problem Statement

You have a billiard table.
The playing area of the table is rectangular.
This billiard table is special as it has no pockets, and the playing area is completely surrounded with a cushion.

You succeeded in producing a ultra-precision billiards playing robot.
When you put some balls on the table, the machine hits one of those balls.
The hit ball stops after 10,000 unit distance in total moved.

When a ball collided with the cushion of the table, the ball takes the orbit like mirror reflection.
When a ball collided with the corner, the ball bounces back on the course that came.

Your mission is to predict which ball collides first with the ball which the robot hits .

Input

The input is a sequence of datasets.
The number of datasets is less than 100.
Each dataset is formatted as follows.

n
w h r v_x v_y
x_1 y_1
...
x_n y_n

First line of a dataset contains an positive integer n, which represents the number of balls on the table (2 \leq n \leq 11).
The next line contains five integers (w, h, r, v_x, v_y) separated by a single space,
where w and h are the width and the length of the playing area of the table respectively (4 \leq w, h \leq 1,000),
r is the radius of the balls (1 \leq r \leq 100).
The robot hits the ball in the vector (v_x, v_y) direction (-10,000 \leq v_x, v_y \leq 10,000 and (v_x, v_y) \neq (0, 0) ).

The following n lines give position of balls.
Each line consists two integers separated by a single space,
(x_i, y_i) means the center position of the i-th ball on the table in the initial state (r < x_i < w - r, r < y_i < h - r).
(0, 0) indicates the position of the north-west corner of the playing area,
and (w, h) indicates the position of the south-east corner of the playing area.
You can assume that, in the initial state, the balls do not touch each other nor the cushion.

The robot always hits the first ball in the list.
You can assume that the given values do not have errors.

The end of the input is indicated by a line containing a single zero.

Output

For each dataset, print the index of the ball which first collides with the ball the robot hits.
When the hit ball collides with no ball until it stops moving, print -1.

You can assume that no more than one ball collides with the hit ball first, at the same time.

It is also guaranteed that, when r changes by eps (eps < 10^{-9}),
the ball which collides first and the way of the collision do not change.

Sample Input

3
26 16 1 8 4
10 6
9 2
9 10
3
71 363 4 8 0
52 238
25 33
59 288
0

Output for the Sample Input

3
-1
Problem Statement

There is a maze which can be described as a W \times H grid.
The upper-left cell is denoted as (1, 1), and the lower-right cell is (W, H).
You are now at the cell (1, 1) and have to go to the cell (W, H).
However, you can only move to the right adjacent cell or to the lower adjacent cell.
The following figure is an example of a maze.

...#......
a###.#####
.bc...A...
##.#C#d#.#
.#B#.#.###
.#...#e.D.
.#A..###.#
..e.c#..E.
####d###.#
#....#.#.#
##E...d.C.

In the maze, some cells are free (denoted by .) and some cells are occupied by rocks (denoted by #), where you cannot enter.
Also there are jewels (denoted by lowercase alphabets) in some of the free cells and holes to place jewels (denoted by uppercase alphabets).
Different alphabets correspond to different types of jewels, i.e. a cell denoted by a contains a jewel of type A, and a cell denoted by A contains a hole to place a jewel of type A.
It is said that, when we place a jewel to a corresponding hole, something happy will happen.

At the cells with jewels, you can choose whether you pick a jewel or not.
Similarly, at the cells with holes, you can choose whether you place a jewel you have or not.
Initially you do not have any jewels.
You have a very big bag, so you can bring arbitrarily many jewels.
However, your bag is a stack, that is, you can only place the jewel that you picked up last.

On the way from cell (1, 1) to cell (W, H), how many jewels can you place to correct holes?

Input

The input contains a sequence of datasets.
The end of the input is indicated by a line containing two zeroes.
Each dataset is formatted as follows.

H W
C_{11} C_{12} ... C_{1W}
C_{21} C_{22} ... C_{2W}
...
C_{H1} C_{H2} ... C_{HW}

Here, H and W are the height and width of the grid.
You may assume 1 \leq W, H \leq 50.
The rest of the datasets consists of H lines, each of which is composed of W letters.
Each letter C_{ij} specifies the type of the cell (i, j) as described before.
It is guaranteed that C_{11} and C_{WH} are never #.

You may also assume that each lowercase or uppercase alphabet appear at most 10 times in each dataset.

Output

For each dataset, output the maximum number of jewels that you can place to corresponding holes.
If you cannot reach the cell (W, H), output -1.

Sample Input

3 3
ac#
b#C
.BA
3 3
aaZ
a#Z
aZZ
3 3
..#
.#.
#..
1 50
abcdefghijklmnopqrstuvwxyYXWVUTSRQPONMLKJIHGFEDCBA
1 50
aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyY
1 50
abcdefghijklmnopqrstuvwxyABCDEFGHIJKLMNOPQRSTUVWXY
1 50
aaaaaaaaaabbbbbbbbbbcccccCCCCCBBBBBBBBBBAAAAAAAAAA
10 10
...#......
a###.#####
.bc...A...
##.#C#d#.#
.#B#.#.###
.#...#e.D.
.#A..###.#
..e.c#..E.
####d###.#
##E...D.C.
0 0

Output for the Sample Input

2
0
-1
25
25
1
25
4
Problem Statement

Let b_i(x) be the i-th least significant bit of x, i.e. the i-th least significant digit of x in base 2 (i \geq 1).
For example, since 6 = (110)_2, b_1(6) = 0, b_2(6) = 1, b_3(6) = 1, b_4(6) = 0, b_5(6) = 0, and so on.

Let A and B be integers that satisfy 1 \leq A \leq B \leq 10^{18},
and k_i be the number of integers x such that A \leq x \leq B and b_i(x) = 1.

Your task is to write a program that determines A and B for a given \{k_i\}.

Input

The input consists of multiple datasets.
The number of datasets is no more than 100,000.
Each dataset has the following format:

n
k_1
k_2
...
k_n

The first line of each dataset contains an integer n (1 \leq n \leq 64).
Then n lines follow, each of which contains k_i (0 \leq k_i \leq 2^{63} - 1).
For all i > n, k_i = 0.

The input is terminated by n = 0.
Your program must not produce output for it.

Output

For each dataset, print one line.

If A and B can be uniquely determined, output A and B. Separate the numbers by a single space.

If there exists more than one possible pair of A and B, output Many (without quotes).

Otherwise, i.e. if there exists no possible pair, output None (without quotes).

Sample Input

3
2
2
1
49
95351238128934
95351238128934
95351238128932
95351238128936
95351238128936
95351238128936
95351238128960
95351238128900
95351238128896
95351238129096
95351238128772
95351238129096
95351238129096
95351238126156
95351238131712
95351238131712
95351238149576
95351238093388
95351238084040
95351237962316
95351238295552
95351237911684
95351237911684
95351235149824
95351233717380
95351249496652
95351249496652
95351226761216
95351226761216
95351082722436
95351082722436
95352054803020
95352156464260
95348273971200
95348273971200
95354202286668
95356451431556
95356451431556
95346024826312
95356451431556
95356451431556
94557999988736
94256939803780
94256939803780
102741546035788
87649443431880
87649443431880
140737488355328
32684288648324
64
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
11
0
0
1
1
1
0
1
1
1
1
1
63
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
4
1
1
1
1
0

Output for the Sample Input

1 4
123456789101112 314159265358979
None
2012 2012
None
Many