alexjercan/bugnet huggingface dataset:
Problem G: Repeated Subsequences

You are a treasure hunter traveling around the world. Finally, you’ve got an ancient text
indicating the place where the treasure was hidden. The ancient text looks like a meaningless
string of characters at first glance. Actually, the secret place is embedded as the longest repeated
subsequence of the text.

Well, then, what is the longest repeated subsequence of a string? First, you split the given string
S into two parts F and R. Then, you take the longest common subsequence L of F and R
(longest string L that is a subsequence of both F and R). Since there are many possible ways
to split S into two parts, there are many possible L's. The longest repeated subsequence is the
longest one among them. For example, the longest repeated subsequence of “ABCABCABAB”
is “ABAB”, which is obtained when you split “ABCABCABAB” into “ABCABC” and “ABAB”.

Now your task is clear. Please find the longest repeated subsequence and get the hidden treasure!

Input

The input consists of multiple data sets. Each data set comes with a single line that contains
one string of up to 300 capital letters. It is guaranteed that there is at least one repeated
subsequence in each string.

The end of input is indicated by a line that contains “#END”. This line should not be processed.

Output

For each data set, print the longest repeated subsequence on a line. If there are multiple longest
subsequence, print any one of them.

Sample Input

ABCABCABAB
ZZZZZZZZZZZZ
#END

Output for the Sample Input

ABAB
ZZZZZZ
Problem H: Petoris

You are playing a puzzle game named petoris. It is played with a board divided into square
grids and square tiles each of which fits to a single grid.

In each step of the game, you have a board partially filled with tiles. You also have a block
consisting of several tiles. You are to place this block somewhere on the board or to discard it,
under the following restrictions on placement:

the block can be rotated, but cannot be divided nor flipped;

no tiles of the block can collide with any tiles existing on the board; and

all the tiles of the block need to be placed inside the board.

Your task is to write a program to find the maximum score you can earn in this step. Here, the
score is the number of the horizontal lines fully filled with tiles after the block is placed, or -1
in case of discard.

Input

The first line of the input is N, the number of data sets. Then N data sets follow.

Each data set consists of lines describing a block and a board. Each description (both for a block
and a board) starts with a line containing two integer H and W, the vertical and horizontal
dimension. Then H lines follow, each with W characters, where a ‘#’ represents a tile and ‘.’ a
vacancy. You can assume that 0 < H ≤ 64 and 0 < W ≤ 64. Each block consists of one or more
tiles all of which are connected. Each board contains zero or more tiles, and has no horizontal
line fully filled with tiles at the initial state.

Output

For each data set, print in a single line the maximum possible score.

Sample Input

5
4 4
....
....
####
....
12 8
........
........
........
........
........
.......#
##.##..#
.#######
.#######
.#######
.#######
.####.#.
4 4
....
....
.###
...#
12 8
........
........
........
........
........
........
........
##...###
##.#####
#######.
#######.
#######.
4 4
####
#..#
#..#
####
12 8
........
........
........
........
........
.......#
##.##..#
##....##
##.##.##
##.##.##
##....##
.####.#.
2 2
##
#.
3 3
.##
.##
##.
4 4
....
.##.
.##.
....
2 2
..
..

Output for the Sample Input

4
1
4
-1
2
Problem I: Pythagoraslope

Alice, your girlfriend, is a student at an art school. She is in the final year, and now working
hard to build a facture for fulfilling the requirement to graduate. Her work is a large pinball
with many straight slopes. Before starting to build, she has made several plans, but is unsure if
they work as expected. So she asked you, a professional programmer, for help.

You have modeled this situation by a two dimensional plane with some line segments on it. In
this model, there is gravitation downward, i.e., in the decreasing direction of y-coordinate. Your
task is to write a program that simulates the pinball, and compute the last position where the
ball crosses the x-axis.

You may assume coefficient of restitution between the slopes and the ball is 0, i.e., when the ball
collides a slope, it instantly loses the velocity component orthogonal to the slope. And since her
pinball is so large, you may also assume that the volume of the ball is negligible.

Input

The input consists of multiple data sets. Each data set is given in the format below.

N
g
x y
x1,1 y1,1 x1,2 y1,2
...
xN,1 yN,1 xN,2 yN,2

where N (N ≤ 100) is the number of slopes, g is gravity acceleration, and (x, y) is the initial
position of the ball. Each of the following N lines represents a slope, which is a line segment
between (xi,1, yi,1 ) and (xi,2, yi,2).

You may assume that:

all coordinates are more than or equal to 1, and less than or equal to 10,000;

xi,1 ≠ xi,2 and yi,1 ≠ yi,2 for all 1 ≤ i ≤ N;

no two line segments cross each other;

extending or shrinking a slope by the length of 0.0001 does not change the ball’s trail, that
is, do not change the set of slopes where the ball passes;

the ball never collides to a slope at the angle of 90 ± 0.0001 degrees from the slope; and

the initial position of the ball never lies on any slope.

The end of the input is indicated by a line containing a single zero. This is not a part of the
data sets, and you must not process it.

Output

For each data set, output the x-coordinate of the final crossing point of the ball’s trail and the
x-axis. Your program may print any number of digits after the decimal point, but the output
must not contain an error greater than 10-4 (= 0.0001).

Sample Input

3
1
120 1000
100 100 180 20
170 10 270 30
270 40 400 20
0

Output for the Sample Input

403.87458314
Problem B: Jaggie Spheres

Let J(n) be a three-dimensional body that

is a union of unit cubes whose all vertices lie on integer coordinates,

contains all points that are closer than the distance of √n to the origin, and

is the smallest of all such bodies.

The figure below shows how J(1), J(2), and J(3) look.

Figure 1: Jaggie Spheres for n = 1, 2, 3

Your task is to calculate how many faces J(n) have. Here, we define two square belong to the same face
if they are parallel and share an edge, but don’t if they share just a vertex.

Input

The input consists of multiple data sets, each of which comes with a single line containing an integer n
(1 ≤ n ≤ 1000000). The end of input is indicated by n = 0.

Output

For each data set, print the number of faces J(n) have.

Sample Input

1
2
3
4
0

Output for the Sample Input

6
30
30
6
Problem C: Nagashi Soumen

Mr. Natsume, the captain of a baseball club, decided to hold a nagashi-soumen party. He first planned
to put a flume at the arena, and let members stand by the side of the flume to eat soumen. But they are
so weird that they adhere to each special position, and refused to move to the side of the flume. They
requested Mr. Natsume to have the flumes go through their special positions. As they never changed their
minds easily, Mr. Natsume tried to rearrange flumes in order to fulfill their requests.

As a caretaker of the baseball club, you are to help Mr. Natsume arrange the flumes. Here are the rules
on the arrangement:

each flume can begin and end at arbitrary points. Also it can be curved at any point in any direction,
but cannot have any branches nor merge with another flume;

each flume needs to be placed so that its height strictly decreases as it goes, otherwise soumen does
not flow;

Mr. Natsume cannot make more than K flumes since he has only K machines for water-sliders; and

needless to say, flumes must go through all the special positions so that every member can eat
soumen.

In addition, to save the cost, you want to arrange flumes so that the total length is as small as possible.
What is the minimum total length of all flumes?

Input

Input consists of multiple data sets. Each data set follows the format below:

N K
x1 y1 z1
...
xN yN zN

N (1 ≤ N ≤ 100) represents the number of attendants, K (1 ≤ K ≤ 4) represents the number of available
flumes, and xi, yi, zi (-100 ≤ xi, yi, zi ≤ 100) represent the i-th attendant’s coordinates. All numbers are
integers. The attendants’ coordinates are all different.

A line with two zeros represents the end of input.

Output

For each data set, output in one line the minimum total length of all flumes in Euclidean distance. No
absolute error in your answer may exceed 10-9. Output -1 if it is impossible to arrange flumes.

Sample Input

1 1
0 0 0
4 4
0 0 0
1 1 1
2 2 2
3 3 3
3 4
0 0 0
1 1 1
2 2 2
4 1
1 0 1
0 0 0
1 1 0
0 1 -1
5 2
0 0 100
0 0 99
1 0 99
1 0 98
1 0 -100
7 4
71 55 -77
-43 -49 50
73 -22 -89
32 99 -33
64 -22 -25
-76 -1 6
39 4 23
0 0

Output for the Sample Input

0
0
0
-1
200
197.671366737338417
Problem D: Private Teacher

You are working as a private teacher. Since you are giving lessons to many pupils, you are very busy,
especially during examination seasons. This season is no exception in that regard.

You know days of the week convenient for each pupil, and also know how many lessons you have to give
to him or her. You can give just one lesson only to one pupil on each day. Now, there are only a limited
number of weeks left until the end of the examination. Can you finish all needed lessons?

Input

The input consists of multiple data sets. Each data set is given in the following format:

N W
t1 c1
list-of-days-of-the-week
t2 c2
list-of-days-of-the-week
...
tN cN
list-of-days-of-the-week

A data set begins with a line containing two integers N (0 < N ≤ 100) and W (0 < W ≤ 1010 ). N is the
number of pupils. W is the number of remaining weeks. The following 2N lines describe information
about the pupils. The information for each pupil is given in two lines. The first line contains two integers
ti and ci. ti (0 < ti ≤ 1010 ) is the number of lessons that the i-th pupil needs. ci (0 < ci ≤ 7) is the number
of days of the week convenient for the i-th pupil. The second line is the list of ci convenient days of the
week (Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, and Saturday).

The end of input is indicated by a line that contains two zeros. This line should not be processed.

Output

For each data set, print “Yes” if you can finish all lessons, or “No” otherwise.

Sample Input

2 2
6 3
Monday Tuesday Wednesday
8 4
Thursday Friday Saturday Sunday
2 2
7 3
Monday Tuesday Wednesday
9 4
Thursday Friday Saturday Sunday
0 0

Output for the Sample Input

Yes
No
Problem E: Triangles

There is a group that paints an emblem on the ground to invite aliens every year. You are a member of
this group and you have to paint the emblem this year.

The shape of the emblem is described as follows. It is made of n regular triangles whose sides are
equally one unit length long. These triangles are placed so that their centroids coincide, and each of them
is rotated counterclockwise by 360/n degrees with respect to the one over it around its centroid. The
direction of the top triangle is not taken into account.

It is believed that emblems have more impact as their n are taken larger. So you want to paint the emblem
of n as large as possible, but you don’t have so much chemicals to paint. Your task is to write a program
which outputs the area of the emblem for given n so that you can estimate the amount of the needed
chemicals.

Figure 1: The Emblem for n = 2

Input

The input data is made of a number of data sets. Each data set is made of one line which contains an
integer n between 1 and 1000 inclusive.

The input is terminated by a line with n = 0. This line should not be processed.

Output

For each data set, output the area of the emblem on one line. Your program may output an arbitrary
number of digits after the decimal point. However, the error should be 10-6 ( = 0.000001) or less.

Sample Input

1
2
3
4
5
6
0

Output for the Sample Input

0.433013
0.577350
0.433013
0.732051
0.776798
0.577350
Problem G: Walk under a Scorching Sun

Edward R. Nelson is visiting a strange town for some task today. This city is built on a two-dimensional
flat ground with several vertical buildings each of which forms a convex polygon when seen from above
on it (that is to say, the buidlings are convex polygon columns). Edward needs to move from the point S
to the point T by walking along the roads on the ground. Since today the sun is scorching and it is very
hot, he wants to walk in the sunshine as less as possible.

Your task is to write program that outputs the route whose length in the sunshine is the shortest, given
the information of buildings, roads and the direction of the sun.

Input

The input consists of multiple data sets. Each data set is given in the following format:

N M
NV1 H1 X1,1 Y1,1 X1,2 Y1,2 . . . X1,NV1 Y1,NV1
...
NVN HN XN,1 YN,1 XN,2 YN,2 . . . XN,NVN YN,NVN
RX1,1 RY1,1 RX1,2 RY1,2
...
RXM,1 RYM,1 RXM,2 RYM,2
θ φ
SX SY TX TY

All numbers are integers. N is the number of the buildings (1 ≤ N ≤ 15). M is the number of the roads
(1 ≤ M ≤ 15). NVi is the number of the vertices of the base of the i-th building (3 ≤ NVi ≤ 10). Hi is the
height of the i-th building. Xi, j and Yi, j are the (x, y)-coordinates of the j-th vertex of the base of the i-th
building. RXk,. and RYk,. are the coordinates of the endpoints of the k-th roads. θ is the direction of the
sun, which is given by a counterclockwise degree which starts in the positive direction of x (0 ≤ θ < 360).
φ is the elevation angle of the sun (0 < φ < 90). (SX, SY) and (TX, TY) are the coordinates of the points
S and T, respectively. All coordinates range from 0 to 1000.

The end of the input is represented by a line with N = M = 0. This line should not be processed.

It is guaranteed that both the points S and T are on the roads. No pair of an edge of a shade and a road
is parallel. You should assume that the sun is located infinitely far away and that it doesn’t move while
Edward is walking.

Output

For each data set, output in one line the length for which he has to walk in the sunshine at least. Your
program may output an arbitrary number of digits after the decimal point. However, the error should be
0.001 or less.

Sample Input

1 1
4 10 0 0 10 0 10 10 0 10
-5 -20 30 15
135 45
0 -15 15 0
0 0

Output for the Sample Input

11.213
Problem A:サイゾウ

ある国で「サイゾウ」というテレビ番組が流行している．
この番組は参加者がフィールドアスレチックに挑戦し，
見事攻略すれば賞金をもらえるというものである．

フィールドアスレチックは高さが異なるブロックを一列に並べて作られていて，
攻略のためにはいかにして段差を登り降りするかが重要になる
（図1）．
この番組に参加することになったあなたの友人は，
フィールドアスレチックの構造が与えられたときに，
登らなければならない最大の段差と降りなければならない最大の段差を
計算するプログラムを書いてほしいと，
凄腕プログラマーであるあなたに依頼してきた．

図1: アスレチックの構造の例（入力例の最初のデータセット）．

Input

入力の1行目にはデータセットの個数 t
(0 < t ≤ 100) が与えられる．
この行に引き続き t 個のデータセットが与えられる．

データセットの1行目はフィールドアスレチックを構成している
ブロックの個数 n
(2 ≤ n ≤ 100) である．
2行目にはスタートからゴールまでのブロックの高さを示す整数が
順に n 個与えられる．
1番目がスタート， n番目がゴールに対応している．
これらの整数は1つの空白文字で区切られている．
各ブロックの高さ h は 0 < h ≤ 1000 を満たす．

Output

各データセットに対し，
登らなければならない最大の段差の大きさと，
降りなければならない最大の段差の大きさを，
1つの空白文字で区切って1行に出力せよ．
なお，登る段差がない，または降りる段差がない場合は，
対応する最大の段差の大きさは 0 とすること．

Sample Input

5
5
10 70 30 50 90
2
20 100
2
100 30
3
50 50 50
7
123 45 678 901 234 567 890

Output for the Sample Input

60 40
80 0
0 70
0 0
633 667
Problem B: 完全数

ある整数 N に対し，その数自身を除く約数の和を S
とする．
N = S のとき
N は完全数 (perfect number)，
N > S のとき
N は不足数 (deficient number)，
N < S のとき
N は過剰数 (abundant number) と呼ばれる．
与えられた整数が，完全数・不足数・過剰数のどれであるかを
判定するプログラムを作成せよ．

プログラムの実行時間が制限時間を越えないように注意すること．

Input

入力はデータセットの並びからなる．
データセットの数は 100 以下である．

各データセットは整数 N
(0 < N ≤ 100000000) のみを含む1行からなる．

最後のデータセットの後に，入力の終わりを示す 0 と書かれた1行がある．

Output

各データセットに対し，
整数 N が完全数ならば “perfect number”，
不足数ならば “deficient number”，
過剰数ならば “abundant number” という文字列を
1行に出力せよ．

Sample Input

1
2
3
4
6
12
16
28
33550336
99999998
99999999
100000000
0

Output for the Sample Input

deficient number
deficient number
deficient number
deficient number
perfect number
abundant number
deficient number
perfect number
perfect number
deficient number
deficient number
abundant number
Problem C: ラミー

あなたの友達は最近 UT-Rummy というカードゲームを思いついた．

このゲームで使うカードには赤・緑・青のいずれかの色と1から9までのいずれかの番号が
つけられている．
このゲームのプレイヤーはそれぞれ9枚の手札を持ち，
自分のターンに手札から1枚選んで捨てて，
代わりに山札から1枚引いてくるということを繰り返す．
このように順番にターンを進めていき，
最初に手持ちのカードに3枚ずつ3つの「セット」を作ったプレイヤーが勝ちとなる．
セットとは，同じ色の3枚のカードからなる組で，すべて同じ数を持っているか
連番をなしているもののことを言う．
連番に関しては，番号の巡回は認められない．
例えば，7, 8, 9は連番であるが 9, 1, 2は連番ではない．

あなたの友達はこのゲームをコンピュータゲームとして売り出すという計画を立てて，
その一環としてあなたに勝利条件の判定部分を作成して欲しいと頼んできた．
あなたの仕事は，手札が勝利条件を満たしているかどうかを判定する
プログラムを書くことである．

Input

入力の1行目にはデータセット数を表す数 T
(0 < T ≤ 50) が与えられる．
この行に引き続き T 個のデータセットが与えられる．

各データセットは2行からなり，
1行目には i 番目
(i = 1, 2, ..., 9)
のカードの数字 ni
がそれぞれスペースで区切られて与えられ，
2行目には i 番目のカードの色を表す文字
ci
がそれぞれスペースで区切られて与えられる．
カードの数字
ni
は 1 ≤ ni ≤ 9
を満たす整数であり，
カードの色 ci
はそれぞれ “R”, “G”,
“B”
のいずれかの文字である．

1つのデータセット内に色と数字がともに同じカードが5枚以上出現することはない．

Output

各データセットにつき，勝利条件を満たしていれば
“1”，
そうでなければ “0” と出力せよ．

Sample Input

5
1 2 3 3 4 5 7 7 7
R R R R R R G G G
1 2 2 3 4 4 4 4 5
R R R R R R R R R
1 2 3 4 4 4 5 5 5
R R B R R R R R R
1 1 1 3 4 5 6 6 6
R R B G G G R R R
2 2 2 3 3 3 1 1 1
R G B R G B R G B

Output for the Sample Input

1
0
0
0
1
Problem D:バトルタウン

あなたは友人たちとゲームを開発することにした．
ゲームのタイトルは「バトルタウン」．
戦車による市街戦をテーマにしたゲームだ．
ゲーム開発の第一歩として，次のようなプロトタイプを開発することにした．

このプロトタイプでは，登場する戦車はプレイヤーの戦車のみであり，
敵の戦車は登場しない．
プレイヤーの戦車はプレイヤーの入力に従ってマップ上で様々な動作をする．
以下に，戦車の動作に関する仕様を述べる．

マップの構成要素は表1の通りである．
戦車が移動できるのはマップ内の平地の上だけである．

表1: マップの構成要素

文字	要素

.	平地

*	レンガの壁

#	鉄の壁

-	水

^	戦車（上向き）

v	戦車（下向き）

<	戦車（左向き）

>	戦車（右向き）

プレイヤーの入力は文字の列で与えられる．
各文字に対応する動作は表2の通りである．

表2: プレイヤーの入力に対する動作

文字	動作

U
Up: 戦車を上向きに方向転換し，さらに一つ上のマスが平地ならばそのマスに移動する

D
Down: 戦車を下向きに方向転換し，さらに一つ下のマスが平地ならばそのマスに移動する

L
Left: 戦車を左向きに方向転換し，さらに一つ左のマスが平地ならばそのマスに移動する

R
Right: 戦車を右向きに方向転換し，さらに一つ右のマスが平地ならばそのマスに移動する

S
Shoot: 戦車が現在向いている方向に砲弾を発射する

砲弾はレンガの壁あるいは鉄の壁にぶつかるか，マップの外に出るまで直進する．
レンガの壁にぶつかった場合は，砲弾は消滅し，レンガの壁は平地に変化する．
鉄の壁にぶつかった場合は，砲弾は消滅するが，鉄の壁は変化しない．
マップの外に出たときは砲弾はそのまま消滅する．

あなたの仕事は，初期マップとプレイヤーの入力操作列が与えられたときに，
最終的なマップの状態を出力するプログラムを作成することである．

Input

入力の1行目にはデータセット数を表す数 T
(0 < T ≤ 100) が与えられる．
この行に引き続き T 個のデータセットが与えられる．

各データセットの1行目にはマップの高さと幅を表す整数
H と W が
1つの空白文字で区切られて与えられる．
これらの整数は 2 ≤ H ≤ 20,
2 ≤ W ≤ 20 を満たす．
続く H 行はマップの初期状態を表す．
各行は長さ W の文字列である．
マップに含まれる文字はすべて表1で定義されたものであり，
全体でちょうど1つの戦車を含む．
マップに続く行には入力操作列の長さ N
(0 < N ≤ 100) が与えられ，
次の行には入力操作列を表す長さ N の文字列が与えられる．
入力操作列は表2で定義された文字のみからなる文字列である．

Output

各データセットに対し，すべての入力操作を終えた後のマップを，
入力マップと同じ形式で出力せよ．
データセットの間には1行の空行を出力せよ．
最後のデータセットの後に余計な空行を出力しないよう注意すること．

Sample Input

4
4 6
*.*..*
*.....
..-...
^.*#..
10
SRSSRRUSSR
2 2
<.
..
12
DDSRRSUUSLLS
3 5
>-#**
.-*#*
.-**#
15
SSSDRSSSDRSSSUU
5 5
v****
*****
*****
*****
*****
44
SSSSDDRSDRSRDSULUURSSSSRRRRDSSSSDDLSDLSDLSSD

Output for the Sample Input

*....*
......
..-...
..>#..

<.
..

^-#**
.-.#*
.-..#

.....
.***.
..*..
..*..
....v
Problem E: カントリーロード

ある過疎地域での話である．
この地域ではカントリーロードと呼ばれるまっすぐな道に沿って，
家がまばらに建っている．
今までこの地域には電気が通っていなかったのだが，
今回政府からいくつかの発電機が与えられることになった．
発電機は好きなところに設置できるが，
家に電気が供給されるにはどれかの発電機に電線を介してつながっていなければならず，
電線には長さに比例するコストが発生する．
地域で唯一の技術系公務員であるあなたの仕事は，
すべての家に電気が供給されるという条件の下で，
できるだけ電線の長さの総計が短くなるような発電機
および電線の配置を求めることである．
なお，発電機の容量は十分に大きいので，
いくらでも多くの家に電気を供給することができるものとする．

サンプル入力の1番目のデータセットを図2に示す．
この問題に対する最適な配置を与えるには，
図のように x = 20 と x = 80 の位置に発電機を配置し，
それぞれ図中のグレーで示した位置に電線を引けばよい．

図2: 発電機と電線の配置の例（入力例の最初のデータセット）．

Input

入力の1行目にはデータセットの個数 t
(0 < t ≤ 50) が与えられる．

引き続き t 個のデータセットが与えられる．
データセットはそれぞれ次のような形式で2行で与えられる．

n k
x1 x2 ... xn

n は家の戸数，k は発電機の個数である．
x1, x2, ...,
xn
はそれぞれ家の位置を表す一次元座標である．
これらの値はすべて整数であり，
0 < n ≤ 100000,
0 < k ≤ 100000,
0 ≤ x1 < x2 <
... < xn ≤ 1000000
を満たす．

さらに，データセットのうち 90% は，
0 < n ≤ 100, 0 < k ≤ 100 を満たしている．

Output

各データセットに対し，
必要な電線の長さの総計の最小値を1行に出力せよ．

Sample Input

6
5 2
10 30 40 70 100
7 3
3 6 10 17 21 26 28
1 1
100
2 1
0 1000000
3 5
30 70 150
6 4
0 10 20 30 40 50

Output for the Sample Input

60
13
0
1000000
0
20
Problem F: Problem F: リズムマシーン

Advanced Computer Music社（ACM社）は，
あらかじめプログラムされたリズム通りに音楽を演奏する
リズムマシーンを販売していた．
ある時，ACM社は新しいリズムマシーンを開発して売り出そうとしていた．
ACM社の旧製品は同時に1つの音しか鳴らすことができなかったのに対し，
新製品では最大で8つの音を同時に鳴らせるようになるというのが
一番の目玉機能であった．
今まで複数の旧製品を利用して演奏する必要のあった曲が
新製品1台で済むようになるので，
ACM社は新製品への移行を推進させるために，
複数の旧製品向けのリズムパターンを1つの新製品向けのリズムパターンに
変換するプログラムを作ることにした．

ACM社のリズムマシーンでは，同時にどの音を鳴らすかを2桁の16進数で表現する．
ACM社のリズムマシーンは8つの異なる音を鳴らすことが可能で，
それぞれの音には0から7の番号が割り当てられている．
あるタイミングにおいて，音 i (0 ≤ i < 8)
を鳴らす場合を si = 1，
鳴らさない場合を si = 0 とする．
このとき，それぞれの音を同時に鳴らしたような和音を

という値で表し，
この値を2桁の16進数表記で表した「和音表現」
がリズムパターンの中で用いられる（16進数の英字は大文字を用いる）．
例えば，音0, 6, 7 を同時に鳴らすような和音は
S = 20 + 26 + 27
= C1(16)
となるから “C1” と表現され，
また何も鳴らさないような「和音」は
“00” と表現される．

リズムパターンは，上記のような和音表現を1つ以上並べたものとして与えられる．
あるリズムパターン文字列は，1小節内の演奏パターンを示している．
それぞれの和音を鳴らすタイミングを小節内の相対位置
t (0 ≤ t < 1)
で表現することにする．
k 個の和音表現からなるリズムパターン文字列は，
小節を k 等分しそれぞれの和音を順に
t = 0/k, 1/k, ...,
(k−1)/k のタイミングで演奏するような
リズムパターンを表している．
例えば，リズムパターン “01000003” は，
t = 0/4 のタイミングで音0を演奏し，
t = 3/4 のタイミングで音0, 1を演奏することを表す．
また，リズムパターン “00”
は小節内で何も音を鳴らさないことを表す
（リズムパターンには和音表現が1つ以上必要であることに注意せよ）．

旧製品は同時に1つの音しか鳴らせないため，
旧製品向けのリズムパターン文字列内には
“00”,
“01”,
“02”,
“04”,
“08”,
“10”,
“20”,
“40”,
“80”
のいずれかの和音表現しか現れない．
旧製品向けのリズムパターンを N 個
(1 ≤ N ≤ 8) 受け取り，
それらのリズムパターンを同時に演奏するような
新製品向けのリズムパターンを出力するプログラムを書いて欲しい．

与えられる N 個のリズムパターンにおいて，
まったく同じタイミングで同じ音が演奏されることはないと仮定してよい．

Input

最初の行にデータセットの数が与えられる．
次の行以降には，それぞれのデータセットが順に記述されている．
データセットの数は 120 を越えないと仮定してよい．

それぞれのデータセットは以下のような形式で与えられる．

N
R1
R2
...
RN

Ri
(1 ≤ i ≤ N)
はそれぞれ旧製品向けのリズムパターンである．

各リズムパターンは最大で2048文字（1024和音表現）である．
与えられるリズムパターンは必ずしも最短の表現になっていないことに注意せよ．

Output

各データセットについて，与えられた N 個のリズムパターンを
すべて同時に演奏するような最短のリズムパターンを生成し，
1行で出力せよ．
そのようなリズムパターンが2048文字を越える場合，
リズムパターンの代わりに “Too complex.”
という文字列を出力せよ．

Sample Input

5
2
01000100
00020202
2
0102
00000810
1
0200020008000200
5
0001
000001
0000000001
00000000000001
0000000000000000000001
1
000000

Output for the Sample Input

01020302
01000A10
02020802
Too complex.
00
Problem G:エナジー・トランスポーター

とある研究所で，
エネルギー伝達用の媒体の開発をしていた．
この媒体は図3に示すような特殊な物質からなる
ポリマー構造をなしている．

(-α-Ea-β-)n

図3: エネルギー伝達用媒体の構造．

図の Ea で示した部分がこの媒体のもっとも特徴的な部位の
エナジーアキュムレータ (Energy Accumulator) である．
このEa基は 1 kJ 幅で離散化された多様なエネルギー状態を取ることができる．
あるEa基を励起させると，
そのEa基のα側に結合している隣接したEa基に蓄積されている全エネルギーを
β側に結合している隣接したEa基に移動させるような効果を持つ
発熱反応が引き起こされる（図4）．
この反応の際，励起されるEa基のエネルギーが 1 kJ 消費される．
なお，ポリマーの両端に位置するEa基やエネルギー状態が 0 kJ になっている
Ea基に対しては励起反応は発生しないこと，
およびEa基は十分に大きなエネルギーを蓄えることが可能であることが知られている．

図4: 中央のEa基を励起させたときの反応．

この性質を利用することでエネルギーの伝達を可能にしようと考えていたのだが，
エネルギーを効率よく伝達するには各Ea基を励起させる順番が重要であることに
研究者たちは気がついたのである．

幸い，励起させる順番や回数は任意に制御できるのだが，
彼らには最適な励起手順がわからない．
そこで彼らの発想の足がかりとして，
初期状態のエネルギー分布に対して
最右Ea基（β末端からもっとも近いEa基）
に蓄えられうる最大のエネルギー量を計算してもらいたい．

Input

入力は複数のデータセットから構成され，
以下のような形式で与えられる．

N
C1
C2
...
CN

入力の先頭の整数 N
(0 < N ≤ 60) が取り扱う問題のデータセット数であり，
その後ろ 2N 行に渡って，
それぞれのデータセットごとの情報 Ck
が与えられる．

それぞれのデータセット Ck
は以下のような形式で
2行に渡り与えられる．

L
E1 E2 ... EL

L はそれぞれのデータセットで取り扱う媒体のEa鎖の長さであり，
ここで与えられた数だけEa基が直列に結合していることを意味している．
その次の行の L 個の整数 Ek は，
長さLのEa鎖のうちα末端を左端に据えたときに
左から数えてk番目のEa鎖にはじめに蓄積されているエネルギー量を
kJ単位で示したものである．

ここで， 0 ≤ Ek ≤ 4,
1 ≤ L ≤ 80 であることが保証されている．

Output

出力は各データセットごとに，与えられた状況下での右端Ea鎖に到達可能な
最大エネルギーをkJ単位で，整数値のみを1行で記述すること．

Sample Input

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

Output for the Sample Input

2
2
8
4
7
12
11
Problem H: いけるかな？

あるところに，日本各地をまわりながら商売をする社長がいた．
彼はある日，不思議な切符を手に入れた．
その切符を使うと，なんと目的地までの距離によらず電車の運賃が無料になるという．
ただし，
現在の駅から隣接する駅へ移動するのを1ステップと数えたときに，
移動するステップ数がちょうど切符に書かれた数と等しくならないと
追加料金を取られてしまう．
ある区間をただちに折り返すような移動は禁止されているが，
既に訪れた駅や区間を複数回通ること自体は許される．
たとえば，駅1・駅2・駅1と移動することはできないが，
駅1・駅2・駅3・駅1・駅2のような移動は問題ない．
また，最終的に目的地に到着するならば，出発地や目的地も何度でも通ってよい．

社長はさっそくこの切符を次の目的地に行くために使ってみようと考えた．
しかし路線図は入り組んでいるため，簡単には経路が定まらない．
あなたの仕事は，社長に代わって目的地に無料で到達できるかどうかを
判定するプログラムを書くことである．

駅は 1 から N までの番号が振られており，
出発地の駅は 1，目的地の駅は N と決まっている．
路線図は2つの駅を結ぶ区間の列によって与えられる．
区間はどちらの方向にも通行することができる．
同じ駅同士を結ぶような区間は存在しないことと，
ある駅の対を結ぶ区間はたかだか1つであることが保証されている．

Input

入力は複数のデータセットからなる．

それぞれのデータセットは次のような形式で与えられる．

N M Z

s1 d1

s2 d2

...

sM dM

N は駅の総数，M は区間の総数であり，
Z は切符に書かれたステップ数である．
si と
di (1 ≤ i ≤ M)
は駅の番号を表す整数であり，
それぞれ駅 si
と駅 di
の間に区間が存在することを表現している．

N, M, Z
は正の整数であり，次の条件を満たす：
2 ≤ N ≤ 50,
1 ≤ M ≤ 50,
0 < Z < 231．

最後のデータセットの後ろに， “0 0 0” と書かれた1行がある．

データセットの数は30を越えない．

Output

それぞれのデータセットに対し，
チケットに書かれているステップ数ちょうどで
目的地に到達できるならば “yes”，
到達できないならば “no”
のみを含む1行の文字列を出力せよ．

Sample Input

2 1 1
1 2
2 1 2
1 2
3 1 2
1 2
8 8 5778
1 2
2 3
2 4
3 5
5 6
6 7
7 8
4 8
8 8 5777
1 2
2 3
2 4
3 5
5 6
6 7
7 8
4 8
0 0 0

Output for the Sample Input

yes
no
no
yes
no