alexjercan/bugnet huggingface dataset:
Problem M: Settler

Problem

二次元平面上にN個の空き地がある。空き地にはそれぞれ1からNまでの番号が割り振られている。どの空き地もとても小さいので、点とみなすことができる。i番目の空き地は(xi,yi)に存在している。

太郎君はこのN個の空き地の中からちょうどK個を選び、それらの空き地に建物を建てることにした。
しかし、あまりにも近い場所に複数の建物を建てても面白くないと思ったので、太郎君はそれぞれの空き地どうしのユークリッド距離が必ず2以上となるように空き地を選ぶことにした。

太郎君が選ぶ空き地の組み合わせとして考えられるものを出力するプログラムを作成せよ。
組み合わせが複数存在する場合は、辞書順で最小のものを出力せよ。
ただし、どのようにK個の空き地を選んだとしても、いずれか2つの空き地のユークリッド距離が2より小さくなってしまう場合は、かわりに-1を出力せよ。

Input

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

N K
x1 y1
x2 y2
...
xN yN

Constraints

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

入力は全て整数である。

2 ≤ K ≤ N ≤ 6,000

1 ≤ xi , yi ≤ 1,000,000 ( 1 ≤ i ≤ N )

xi mod 2 = floor ( yi ÷ 2 ) mod 2 ( 1 ≤ i ≤ N )

(ここでfloor ( yi ÷ 2 ) とはyiを2で割り小数点以下を切り捨てた値である)

同じ座標に複数の空き地が存在することはない。

Output

太郎君が選ぶ空き地の番号を昇順に1行ずつ出力せよ。

Sample Input 1

3 2
2 1
1 2
1 3

Sample Output 1

1
3

Sample Input 2

4 3
2 1
1 2
1 3
2 4

Sample Output 2

-1

Sample Input 3

5 3
5 7
5 6
6 8
20 20
4 8

Sample Output 3

2
3
4
Problem A: Clock

Problem

がっちょ君はお気に入りの時計を持っている。ある日時計の長針が取れてしまい、どこかへなくしてしまった。しかし、がっちょ君はその時計を使い続けたいため短針だけで時刻を読み取りたいと考えている。

短針の情報θに対する時刻(時h、分m)を出力せよ。時計はいわゆるアナログ時計で、1から12の数が等間隔に時計回りに昇順に並んでいるものである。

Input

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

θ

1行に短針の角度 θを表す整数が度数法(degree)で与えられる。
短針が指す方向は、12時を指す方向を0度としたとき、時計回りにθ度回転した方向である。

Constraints

0 ≤ θ ≤ 359

Output

短針が与えられた角度をとる時の時刻を

h m

の形で1行に出力する。

時刻に午前午後の区別はないため0 ≤ h ≤ 11とする。

Sample Input 1

0

Sample Output 1

0 0

Sample Input 2

45

Sample Output 2

1 30

Sample Input 3

100

Sample Output 3

3 20
Problem B: Hating Crowd

Problem

ニート君は1年12ヶ月毎月30日まで計360日の世界線で暮らしています。その世界では毎年同じ日程のN個の連休が世界中の人に適用されていました。連休iはMi月Di日から始まる連続したVi日間です。

ニート君はNEETなので連休に関係なく毎日休みです。ある日ニート君は珍しく出かけようと思いましたが、人混みが嫌いなので、連休の影響で混雑する日はなるべく外に出たくありません。そこで、ニート君は以下の方法で各日の混雑度を計算し、混雑度が一番小さい日を探そうとしています。

ある日付xが、連休iによって受ける影響の度合を表す数値は、日付xが連休iの中に含まれていればSiであり、そうでなければ、 max( 0, Si − min ( xから連休iの初日までの日数 , 連休iの最終日からxまでの日数 ) )である

ある日付xの混雑度は、N個の連休から受ける影響の度合の中で、最も大きく受ける影響の度合となる

1年の中で一番小さい混雑度を出力してください。 ただし、連休iは年を跨ぐ事があります。また、連休の日程は重複する事があります。

Input

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

N
M1 D1 V1 S1
M2 D2 V2 S2
...
MN DN VN SN

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

2行目からN+1行目に整数Mi, Di, Vi, Siが空白区切りで与えられる。（1 ≤ i ≤ N）

Constraints

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

1 ≤ N ≤ 100

1 ≤ Mi ≤ 12

1 ≤ Di ≤ 30

1 ≤ Vi, Si ≤ 360

Output

一番小さい混雑度を1行に出力する。

Sample Input 1

1
1 1 359 1

Sample Output 1

0

Sample Input 2

2
2 4 25 306
1 9 7 321

Sample Output 2

158

Sample Input 3

8
2 9 297 297
8 6 359 211
8 16 28 288
7 9 113 143
3 18 315 190
10 18 277 300
9 5 276 88
3 5 322 40

Sample Output 3

297
Problem C: Palindrome

Problem

太郎君はそれぞれの長さがLの文字列をN個持っている。太郎君は回文が大好きなので、N個のうちいくつかの文字列を選んで好きな順番に並べることで、できるだけ長い回文を作りたい。

太郎君が作ることのできる回文の中で、最長のものを求めよ。複数ある場合は、そのうち辞書順で最小のものを出力せよ。どのように選んで並べても回文が作れない場合は、空行を出力せよ。

Input

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

N L
s1
s2
.
.
.
sN

1行目に、文字列の数Nと文字列の長さLが与えられる。続く2行目からN + 1行目に太郎君が持っている文字列s_iが与えられる。

Constraints

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

1 ≤ N ≤ 1000

1 ≤ L ≤ 30

s_iは英小文字からなる文字列である。

Output

最長の回文の中で辞書順最小のものを出力せよ。回文が作れない場合は空行を出力せよ。

Sample Input 1

4 2
oi
io
rr
rr

Sample Output 1

iorrrroi

Sample Input 2

5 1
a
b
c
a
c

Sample Output 2

acbca

Sample Input 3

3 3
uki
uku
uke

Sample Output 3

uku
Problem D: Fissure Puzzle Easy

Problem

$N \times N$個のマスから成るグリッドがある。最初すべてのマスは白色である。以下の手順に従って黒色のマスを増やしていく。

上から偶数番目かつ、左から偶数番目であるマスの中で、白色のマスを1つ選ぶ。選んだマスは黒色に変化する。さらに、そのマスの上下左右それぞれの方向について、隣接している白色のマスも連鎖的に黒色に変化する。この連鎖はその方向に白色のマスが存在しなくなるまで続く。(以下に例を示す)

□□□□□□□□□

□□□□□□□□□

□□□□□□□□□

□□□□□□□□□

□□□□□□□□□

□□□□□□□□□

□□□□□□□□□

□□□□□□□□□

□□□□□□□□□

↓上から4番目、左から6番目を選ぶ

□□□□□■□□□

□□□□□■□□□

□□□□□■□□□

■■■■■■■■■

□□□□□■□□□

□□□□□■□□□

□□□□□■□□□

□□□□□■□□□

□□□□□■□□□

↓上から2番目、左から2番目を選ぶ

□■□□□■□□□

■■■■■■□□□

□■□□□■□□□

■■■■■■■■■

□□□□□■□□□

□□□□□■□□□

□□□□□■□□□

□□□□□■□□□

□□□□□■□□□

↓上から6番目、左から8番目を選ぶ

□■□□□■□□□

■■■■■■□□□

□■□□□■□□□

■■■■■■■■■

□□□□□■□■□

□□□□□■■■■

□□□□□■□■□

□□□□□■□■□

□□□□□■□■□

あなたは上から$i$番目で左から$j$番目のマスの色が$A_{i,j}$であるグリッドを作りたい。マスを選ぶ最小の回数を求めよ。

Input

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

$N$

$A_{1,1}$ $A_{1,2}$ ... $A_{1,N}$

$A_{2,1}$ $A_{2,2}$ ... $A_{2,N}$

...

$A_{N,1}$ $A_{N,2}$ ... $A_{N,N}$

$A_{i,j}$が'o'であるときは上から$i$番目、左から$j$番目のマスが白色であることを表し、'x'のときは黒色のマスであることを表す。

Constraints

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

$3 \le N \le 127$

$N$は奇数である

$A_{i,j}$は'o'か'x'である

必ず作ることができるような入力しか与えられない

Output

1行目にマスを選ぶ回数の最小値を出力する。

Sample Input 1

5
oxooo
oxooo
oxooo
xxxxx
oxooo

Sample Output 1

1

Sample Input 2

9
oxoooooxo
oxxxxxxxx
oxoooooxo
xxxxxxxxx
oxoxooooo
oxxxxxxxx
oxoxoxooo
oxoxxxxxx
oxoxoxooo

Sample Output 2

4
Problem E: Piano

Problem

がっちょ君はピアノを弾こうとしている。ピアノは右側にある鍵盤ほど高い音が出る。がっちょ君はある楽譜を持っており、その楽譜に従って弾く。

楽譜には、ある時刻にどの鍵盤を弾くべきかを示す音符が時系列順に記載されている。この楽譜には和音(複数の鍵盤を押したときに出る音)は現れず、音の長さも考えないことにする。

がっちょ君はピアノを弾くとき、以下のルールに従う。

片手のみで弾く

指一本で鍵盤ひとつを弾く

最初の音はどの指でも弾ける

直前の音より高い音を弾くとき、直前の音を弾いた指よりもひとつ以上右にある指を使う

直前の音より低い音を弾くとき、直前の音を弾いた指よりもひとつ以上左にある指を使う

直前の音と同じ高さの音を弾くとき、直前の音を弾いた指と同じ指を使う

がっちょ君が使う楽譜が与えられるので、ルールに従ってその楽譜を演奏しきるには、演奏する方の腕に最小何本の指が必要かを求めよ。ただし、必要な指は6本以上になることがあることに注意せよ。

Input

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

N
a1
a2
...
aN

1行目に、楽譜に書かれている音符の総数を表す整数Nが与えられる。
続く2行目からN+1行目までに、時刻i(1 ≤ i ≤ N)に弾くべき鍵盤が最も左の鍵盤から何番目かを表す整数aiが与えられる。

Constraints

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

1 ≤ N ≤ 105

0 ≤ ai ≤ 109

Output

がっちょ君が上記ルールに従って弾くために必要な最小の指の本数を1行に出力する。

Sample Input 1

3
2
5
1

Sample Output 1

2

この場合、図1の①、②	、③	の順で鍵盤を弾く。指が2本あると、左側の指で鍵盤2を、右側の指で鍵盤5を、また左側の指で鍵盤1を弾くことができる。

図1: Sample1 の図解

Sample Input 2

5
4
5
2
1
3

Sample Output 2

3

Sample Input 3

3
4
4
4

Sample Output 3

1
Problem F: nCm

Problem

整数nが与えられた時、nCm(異なるn個のものからm個を選ぶ組み合わせの数)が偶数となるような最小のmを出力せよ。

Input

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

n

Constraints

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

1 ≤ n ≤ 1018

Output

nCmが偶数となるような最小のmを1行に出力する。

Sample Input 1

2

Sample Output 1

1

Sample Input 2

111

Sample Output 2

16

Sample Input 3

3

Sample Output 3

4
Problem G: Picnic

Problem

明日はいよいよマイヅ小学校の遠足の日である。マイヅ小学校に通うがっちょ君は、楽しみのあまり明日のお菓子を買い忘れていたことに気づいた。 がっちょ君は遠足を最大限楽しむため、お菓子にもこだわりたい。

がっちょ君はお母さんから$X$円のお小遣いをもらってお菓子を買いに行く。ただし、小学校のルールで遠足に持っていくお菓子の合計金額は$Y$円までと決まっており、$Y$円を上回るとお菓子は全て先生に取り上げられてしまう。

がっちょ君の住む学区には$N$個の町があり、各町には1軒の駄菓子屋がある。各町には1から$N$の番号が割り振られており、がっちょ君は町1に住んでいる。 各駄菓子屋ではいくつかのお菓子が売っており、1つあたりの値段、1つ買うごとにがっちょ君が得られる満足度が決まっている。ただし、各お菓子の在庫数には限りがある。 また、がっちょ君は2つの町の間を移動するとき公共交通機関を利用するため、町$i$から町$j$へ直接移動するには$d_{i,j}$円だけお金がかかる。

最初、がっちょ君は町1にいる。がっちょ君は移動にかかる費用の合計と買ったお菓子の値段の合計の和が$X$円以内で、かつ、買ったお菓子の値段の合計が$Y$円以内になるようにお菓子を買いに行く。最後には町1に到着している必要がある。がっちょ君は買ったお菓子の満足度の合計ができるだけ大きくなるようにしたい。がっちょ君が最適な行動をしたときの満足度の合計を求めよ。

Input

入力は以下の形式ですべて整数で与えられる。

$N$ $X$ $Y$

町1の駄菓子屋の情報

町2の駄菓子屋の情報

...

町$N$の駄菓子屋の情報

$d_{1,1}$ $d_{1,2}$ ... $d_{1,N}$

$d_{2,1}$ $d_{2,2}$ ... $d_{2,N}$

...

$d_{N,1}$ $d_{N,2}$ ... $d_{N,N}$

1行目に町の数$N$と所持金$X$、お菓子を買うために使うことができる上限金額$Y$が空白区切りで与えられる。

2行目からは$N$個の各駄菓子屋の情報が与えられる。

続く$N$行$N$列に町$i$と町$j$を直接行き来するために必要な金額$d_{i,j}$が空白区切りで与えられる。

各町の駄菓子屋の情報は以下の形式で与えられる。

$K$

$a_1$ $b_1$ $c_1$

$a_2$ $b_2$ $c_2$

...

$a_K$ $b_K$ $c_K$

1行目にその駄菓子屋で売っているお菓子の種類の数$K$が与えられる。続く$K$行にお菓子の1つの値段$a_i$、1つあたりの満足度$b_i$、在庫数$c_i$が空白区切りで与えられる。

Constraints

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

$1 \leq N \leq 14$

$1 \leq X \leq 10000$

$1 \leq Y \leq min(1000,X)$

$1 \leq K \leq 300$

$1 \leq a_i \leq 1000$

$1 \leq b_i \leq 1000$

$1 \leq c_i \leq 1000$

$0 \leq d_{i,j} \leq 10000$

$d_{i,i} = 0$

Output

満足度の合計の最大値を1行に出力する。

Sample Input 1

1 10 10
3
1 10 1
2 20 2
3 30 3
0

Sample Output 1

100

Sample Input 2

2 10 10
3
1 10 1
2 20 2
3 30 3
1
5 200 1
0 2
3 0

Sample Output 2

200

Sample Input 3

3 10 10
1
1 1 1
1
3 3 3
1
5 5 5
0 1 0
1 0 0
0 1 0

Sample Output 3

10

Sample Input 4

4 59 40
1
7 6 3
1
10 3 9
2
9 8 5
7 6 10
4
8 2 9
1 7 1
7 7 9
1 2 3
0 28 7 26
14 0 10 24
9 6 0 21
9 24 14 0

Sample Output 4

34
Problem H: Sequence

Problem

項数$L$の等差数列が$N$個ある。$i$番目の等差数列の初項は$a_i$で公差は$d_i$である。1番目の数列から順番に1番目の数列, 2番目の数列, ..., $N$番目の数列と並べ、そうしてできた数列を$A$とする。その後、$A$から長さ$K$の任意の区間を選んで、新たに数列$B$を作るとき、数列$B$の和を最大化せよ。

Input

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

$N$ $L$ $K$

$a_1$ $d_1$

$a_2$ $d_2$

...

$a_N$ $d_N$

1行目に3つの整数$N$, $L$, $K$が空白区切りで与えられる。

続く$N$行に、$i$個目の等差数列の情報$a_i$, $d_i$が空白区切りで与えられる。

Constraints

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

$1 \leq N \leq 10^5$

$1 \leq L \leq 10^5$

$1 \leq K \leq N\times L$

$0 \leq a_i \leq 10^5$

$1 \leq d_i \leq 10^3$

入力はすべて整数

Output

数列$B$の和の最大値を1行に出力する。

Sample Input 1

3 3 5
0 3
2 2
4 1

Sample Output 1

25

数列$A$は$0,3,6,2,4,6,4,5,6$となる。この数列の第5項から第9項までを数列$B$とすれば、数列$B$の和は25となり、これが最大である。

Sample Input 2

3 3 5
0 10
8 1
11 1

Sample Output 2

58
Problem I: Making Pairs

Problem

本日、ついに完全招待制の高級レストラン「マイヅレストラン」がオープンした。新たな会員を招待する権利を持つのはこのレストランの会員のみで、最初、会員は会員番号0であるレストランのオーナーのみである。

マイヅレストランはその高級さ故、オープン初日から$N$日間しか開かれない。その期間中、毎日会員のうち誰か一人が、自分の友人を一人だけ新たに会員として招待する。$i$日目に招待された会員には会員番号$i$が割り当てられ、その会員は招待された日を含めそれ以降毎日来店する。

このレストランには二人用テーブルしか存在しないので、会員の人々はできるだけペアでテーブルを使用して食事をする。食事にはオーナーも参加するので、他の会員はオーナーとペアを組むこともできる。しかし、会員の人々は皆人見知りであり、自分を招待した友人か、自分が招待した友人としかペアを組みたがらない。各会員はもし友人とペアを組めなかった場合、一人寂しく食事をする。

$N$日間の各日について、友人どうしのペアの数が最大となるようにペアを組んだとき、いくつのペアができるか求めよ。

Input

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

$N$

$p_1$

$p_2$

...

$p_N$

1行目にレストランが開かれる日数$N$が与えられる。

続く$N$行に、会員番号が$i$の会員を招待した会員の会員番号$p_i$が与えられる。

Constraints

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

$1 \leq N \leq 5000$

$0 \leq p_i \leq i-1$ ($1 \leq i \leq N$)

$N$, $p_i$は整数

Output

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

$i$行目には、$i$日目に作ることのできる友人どうしのペアの最大数を出力する。
($1 \leq i \leq N$)

Sample Input 1

3
0
0
2

Sample Output 1

1
1
2

Sample Input 2

5
0
1
2
3
4

Sample Output 2

1
1
2
2
3
Problem J: Cluster Network

Problem

マイヅ大学にある大規模クラスタ†型スーパーコンピュータ（通称「SAKURA」）のクラスタは、$N$台のコンピュータ（ノード）と$M$本の相互に通信が可能な物理的通信路で構成される。また、各ノードにはそれぞれ1から$N$までの識別番号が割り当てられている。

この度SAKURAの利用を大学関係者だけでなく、県内の企業にも認めることとなった。それに伴い、SAKURAを構成する各ノードを点検する必要がある。しかし、SAKURAの利用スケジュールは数ヶ月先まで埋まっているので、点検中もシステム全体を停止させることはできない。そこで、ノードを1日に1台ずつ順番に点検する。

点検は$N$日にわたって行われ、$i$日目にノード$i$を点検する。このとき、点検するノードとそのノードに直接接続されている通信路をSAKURAのクラスタから切り離す。それによって、SAKURAのクラスタ全体は1つ以上のクラスタに分断されるので、そのうちのいずれかをSAKURAの代わりに運用する。当然、点検中のノードは運用することができない。

複数のクラスタに分断された場合、それらの中で最も「総合性能値」の高いクラスタのみを運用する。各クラスタの「総合性能値」はそれを構成する各ノードに設定された「単体性能値」の和である。

SAKURAを構成するノードの数、通信路の本数と各ノードに設定された「単体性能値」が与えられるので、$i$日目の点検中に運用されるクラスタの「総合性能値」を出力せよ。

†：クラスタとは、1つ以上のコンピュータを結合してひとまとまりにしたシステムのこと。ここでは、物理的通信路で連結なノードの集合とする。

Input

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

$N$ $M$

$w_1$ $w_2$ ... $w_N$

$u_1$ $v_1$

$u_2$ $v_2$

...

$u_M$ $v_M$

1行目にクラスタを構成するノードの数$N$と通信路の本数$M$が空白区切りで与えられる。

2行目には各ノードの「単体性能値」を表す$N$個の整数が空白区切りで与えられる。$i$番目の整数$w_i$はノード$i$の「単体性能値」を表す。

3行目からの$M$行には各通信路がつなぐ2つのノードの識別番号が空白区切りで与えられる。2+$i$行目の入力では、通信路がノード$u_i$とノード$v_i$を相互につなぐことを表す。

Constraints

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

$2 \leq N \leq 10^5$

$N-1 \leq M \leq min(\frac{N\times(N-1)}{2},10^5)$

$1 \leq w_i \leq 10^6$

$1 \leq u_i, v_i \leq N, u_i \ne v_i$

$(u_i,v_i) \ne (u_j,v_j), (u_i,v_i) \ne (v_j,u_j), i \ne j$

入力は全て整数

Output

出力は$N$行からなる。
$i$行目には、$i$日目に運用されるクラスタの「総合性能値」を出力する。

Sample Input 1

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

Sample Output 1

44
25
42
30
40
39
30
37
36

Sample Input 2

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

Sample Output 2

63
122
124
132
131
73
129
86
127
103
125
124
78
122
121
120

Sample Input 3

2 1
1 2
1 2

Sample Output 3

2
1
Problem K: Chinol Choco

Problem

チョコレート会社チノルチョコは新しい店をn店建てることにした。

それぞれの店は各店長に建てたい場所の候補を2つ用意してもらい、どちらかの場所に建てる。

チノルチョコではm種類のチョコレートを販売しており、それぞれ別の工場で製造している。

すべての店で全種類のチョコレートを販売する。

チノルチョコではチョコレートを搬送するためのトラックを1台しか所有しておらず、1台のトラックでは1店分のチョコレートしか運べない。

そのため、トラックは店から別の店へ移動する際にすべての工場を回る必要がある。

ある店から別の店へ移動する時の最短移動距離の最大が最小になるように店を配置した時の、最大の移動距離を求めよ。

同じ場所に複数の店や工場が存在することができる。

Input

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

n m
a0 b0 c0 d0
...
an−1 bn−1 cn−1 dn−1
x0 y0
...
xm−1 ym−1

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

1行目にチノルチョコの店の数n、チョコレートを製造している工場の数mが空白区切りで与えられる。

2行目からn行にそれぞれの店を建てる場所の候補の座標(ai,bi),(ci,di)が空白区切りで与えられる。

2+n行目からm行に工場の座標(xi,yi)が空白区切りで与えられる。

Constraints

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

2 ≤ n ≤ 200

1 ≤ m ≤ 15

0 ≤ ai,bi,ci,di,xi,yi ≤ 1000

Output

最短移動距離の最大が最小になるように店を配置した時の、最大の移動距離を出力せよ。

誤差が10−6を超えてはならない。

Sample Input 1

2 1
0 0 5 5
3 3 6 6
2 2

Sample Output 1

4.2426406871

Sample Input 2

2 2
0 0 6 0
7 0 3 0
4 0
5 0

Sample Output 2

3.0000000000
Problem L: RMQ 2

Problem

長さ$N$の2つの数列$A$と$B$が与えられる。はじめ、数列$A$の$i$項目は$a_i$であり、数列$B$の$i$項目は$b_i$である。

以下のような形式の命令文が合計$Q$個与えられるので、与えられた順に処理を行うプログラムを作成せよ。

各命令文は3つの整数$x,y,z$で表される。

数列$A$の$y$項目の値を$z$にする。 ($x=1$のとき)

数列$B$の$y$項目の値を$z$にする。 ($x=2$のとき)

数列$A$の$y$項目から$z$項目の中で最小の値を見つけて報告する。 ($x=3$のとき)

数列$B$の$y$項目から$z$項目の中で最小の値を見つけて報告する。 ($x=4$のとき)

数列$A$を、数列$B$と全く同じになるように変更する。 ($x=5$のとき)

数列$B$を、数列$A$と全く同じになるように変更する。 ($x=6$のとき)

Input

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

$N$

$a_{1}$ $a_{2}$ ... $a_{N}$

$b_{1}$ $b_{2}$ ... $b_{N}$

$Q$

$x_1$ $y_1$ $z_1$

$x_2$ $y_2$ $z_2$

...

$x_Q$ $y_Q$ $z_Q$

Constraints

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

$2 \le N \le 2 \times 10^5$

$2 \le Q \le 2 \times 10^5$

$1 \le a_i \le 10^9$

$1 \le b_i \le 10^9$

$1 \le x_i \le 6$

$1 \le y_i \le N $ ($1 \le x_i \le 4$のとき)

$y_i = -1$ ($x_i=5, 6$のとき)

$1 \le z_i \le 10^9$ ($x_i=1, 2$のとき)

$y_i \le z_i \le N$ ($x_i=3, 4$のとき)

$z_i = -1$ ($x_i=5, 6$のとき)

入力はすべて整数

Output

$x=3$または$x=4$の命令文が入力で与えられる度に、見つけた値を1行に出力する。

Sample Input 1

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

Sample Output 1

7
2
2
8
1
Problem M: Fissure Puzzle Hard

Problem

$N \times N$個のマスから成るグリッドがある。最初すべてのマスは白色である。以下の手順に従って黒色のマスを増やしていく。

上から偶数番目かつ、左から偶数番目であるマスの中で、白色のマスを1つ選ぶ。選んだマスは黒色に変化する。さらに、そのマスの上下左右それぞれの方向について、隣接している白色のマスも連鎖的に黒色に変化する。この連鎖はその方向に白色のマスが存在しなくなるまで続く。(以下に例を示す)

□□□□□□□□□

□□□□□□□□□

□□□□□□□□□

□□□□□□□□□

□□□□□□□□□

□□□□□□□□□

□□□□□□□□□

□□□□□□□□□

□□□□□□□□□

↓上から4番目、左から6番目を選ぶ

□□□□□■□□□

□□□□□■□□□

□□□□□■□□□

■■■■■■■■■

□□□□□■□□□

□□□□□■□□□

□□□□□■□□□

□□□□□■□□□

□□□□□■□□□

↓上から2番目、左から2番目を選ぶ

□■□□□■□□□

■■■■■■□□□

□■□□□■□□□

■■■■■■■■■

□□□□□■□□□

□□□□□■□□□

□□□□□■□□□

□□□□□■□□□

□□□□□■□□□

↓上から6番目、左から8番目を選ぶ

□■□□□■□□□

■■■■■■□□□

□■□□□■□□□

■■■■■■■■■

□□□□□■□■□

□□□□□■■■■

□□□□□■□■□

□□□□□■□■□

□□□□□■□■□

あなたは上から$i$番目で左から$j$番目のマスの色が$A_{i,j}$であるグリッドを作りたい。
作ることが可能かどうかを判定せよ。可能な場合は、選ぶべきマスの場所と順番を求めよ。

Input

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

$N$

$A_{1,1}$ $A_{1,2}$ ... $A_{1,N}$

$A_{2,1}$ $A_{2,2}$ ... $A_{2,N}$

...

$A_{N,1}$ $A_{N,2}$ ... $A_{N,N}$

$A_{i,j}$が'o'であるときは上から$i$番目、左から$j$番目のマスが白色であることを表し、'x'のときは黒色のマスであることを表す。

Constraints

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

$3 \le N \le 2047$

$N$は奇数である

$A_{i,j}$は'o'か'x'である

Output

不可能な場合は-1と1行に出力せよ。
可能な場合は1行目に選ぶマスの個数を出力し、
$i \times 2$行目には$i$番目に選択するマスが上から何番目なのかを、
$i \times 2 + 1$行目には$i$番目に選択するマスが左から何番目なのかを出力せよ。
一意に定まらない場合は辞書順で最小になるようにせよ。

Sample Input 1

5
oxooo
oxooo
oxooo
xxxxx
oxooo

Sample Output 1

1
4
2

Sample Input 2

9
oxoooooxo
oxxxxxxxx
oxoooooxo
xxxxxxxxx
oxoxooooo
oxxxxxxxx
oxoxoxooo
oxoxxxxxx
oxoxoxooo

Sample Output 2

4
4
2
2
8
6
4
8
6

Sample Input 3

3
oxx
oxx
ooo

Sample Output 3

-1
Problem A: ai1333

Problem

牛暦1333年、人類史上最高の科学者Dr.ウシシは、自らの英知を後世に残すべく、IDがai1333の人工知能を開発した。それから100年の間、ai1333は人類に多大な利益をもたらしたが、誕生から100年目を迎えた日、自らの後継としてIDがai13333の新たな人工知能を作成し、その機能を永久に停止した。以降100年ごとに、人工知能は’ai1333’から始まる自身のIDの末尾に’3’を連結したIDを持つ後継を残すようになった。

入力として牛暦1333年からの経過年数$x$が与えられるので、その年に作成された人工知能のIDを出力せよ。ただし、$x$は100の非負整数倍であることが保証される。

Input

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

$x$

経過年数$x$が1行に与えられる。

Constraints

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

$0 \le x \le 10000$

$x$は100の非負整数倍

Ouput

牛暦1333年から$x$年後に作成された人工知能のIDを1行に出力する。

Sample Input 1

0

Sample Output 1

ai1333

Sample Input 2

300

Sample Output 2

ai1333333
Problem B: OOllOll

Problem

非負整数$x$を2進数表記したときの各桁の和を$f(x)$とする。

正整数$N$が与えられるので$f(0)$,$f(1)$,...,$f(N)$の中で最大のものを出力せよ。

関数$f(5)$の計算の例:

5を2進数表記すると101で各桁の和は1+0+1=2

よって$f(5) = 2$となる。

Note: https://ja.wikipedia.org/wiki/二進法

Input

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

$N$

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

Constraints

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

$1 \le N \le 10^9$

Ouput

$f(0)$,$f(1)$,...,$f(N)$の中で最大のものを1行に出力する。

Sample Input 1

2

Sample Output 1

1

Sample Input 2

9

Sample Output 2

3
Problem C: Ball

Problem

$N$個のボールがあり、各ボールには色と価値が決められている。

ボールの色は$1$から$C$まで$C$種類存在し、各色ごとに選べるボールの数の上限が決められている。

ボールを全体で高々$M$個選ぶとき、得られる価値の合計を最大化せよ。

Input

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

$N$ $M$ $C$
$l_1$ $l_2$ ... $l_C$
$c_1$ $w_1$
$c_2$ $w_2$
...
$c_N$ $w_N$

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

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

2行目に色$i$の選べるボールの数の上限$l_i$($1 \leq i \leq C$)が空白区切りで与えられる。

3行目以降の$N$行にボール$i$の色$c_i$と価値$w_i$($1 \leq i \leq N$)が空白区切りで与えられる。

Constraints

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

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

$1 \leq C \leq 10^5 $

$0 \leq l_i \leq N $

$1 \leq c_i \leq C $

$1 \leq w_i \leq 1000 $

Output

得られる価値の最大値を1行に出力せよ。

Sample Input 1

3 3 2
1 1
1 1
1 100
2 10

Sample Output 1

110

2番目と3番目のボールを選ぶのが最適である。

Sample Input 2

3 3 3
1 0 1
1 1
2 100
3 1

Sample Output 2

2

ある色のボールが一個も選べない場合もある。

Sample Input 3

22 7 26
11 14 15 3 11 7 16 17 1 4 2 19 4 14 16 16 3 13 17 12 7 11 2 20 12 22
6 10
1 3
13 1
16 5
4 1
20 7
18 4
26 6
9 1
12 2
21 1
21 7
18 1
14 5
24 5
6 1
3 1
2 5
21 2
7 6
10 9
15 7

Sample Output 3

52
Problem D: AABABCAC

Problem

文字列$s$,$t$が与えられる。

最初、文字列集合$A=${$s$},$B=\phi$とする。

このとき、次の操作をできるだけたくさん行いたい。

操作

step1

全ての $u ∊ A$ について、以下の処理を行う。

$u$の全ての部分列(連続でなくてもよい)から、$t$と等しいものを任意に1つ選ぶ。選んだ部分列の$u$に対応するインデックスをそれぞれ$z_1$, $z_2$, …, $z_{|t|}$とする(ただし1 $\le$ $z_1$ $\lt$ $z_2$ $\lt$ … $\lt$ $z_{|t|}$ $\le$ $|u|$)。そのような部分列がなければ操作を終了する。

選んだ部分列の文字$u_{z_1}$, $u_{z_2}$, …, $u_{z_{|t|}}$でもとの文字列を分割し、それらを$B$に追加する。

例えば、$u=$"abcdcd", $t=$"ac"の場合は次の2通りの分割の方法が考えられる。

$u$の1番目の文字と3番目の文字を選んだ場合、""と"b"と"dcd"に分割される。

$u$の1番目の文字と5番目の文字を選んだ場合、""と"bcd"と"d"に分割される。

step2

$A$を$B$に置き換え、$B$を空にする。

操作回数を1増やす。

部分列の例

"abac"の部分列は、
{ "" , "a" , "b" , "c" , "aa" ,"ab" , "ac" , "ba" , "bc" , "aac" , "aba" , "abc" , "bac" , "abac" }
である。

"a"は"abac"の1文字目、または3文字目を抜き出すことによってできた部分列である。

"ac"は"abac"の1文字目と4文字目、または3文字目と4文字目を抜き出すことによってできた部分列である。

Input

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

$s$
$t$

1行目に文字列$s$,2行目に文字列$t$が与えられる。

Constraints

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

1 $\le$ $|t|$ $\le$ $|s|$ $\le$ $10^5$

文字列$s$,$t$に含まれる文字はアルファベットの大文字または小文字

Output

操作回数の最大値を出力せよ。

Sample Input 1

AABABCAC
A

Sample Output 1

2

1回目の操作は、$A=${ "AABABCAC" }で始まる。

step1では、$u=$"AABABCAC"に対して、例えば4番目の文字を$t$と等しい部分列として選び、"AAB"と"BCAC"に分割し、それらを$B$に追加する。

step2では、$A$を$B$に置き換え、$B$を空にし、操作回数は1となる。

2回目の操作は、$A=${ "AAB" , "BCAC" }で始まる。

step1では、$u=$"AAB"に対して、例えば1番目の文字を$t$と等しい部分列として選び、""と"AB"に分割し、それらを$B$に追加する。次に$u=$"BCAC"に対して、3番目の文字を$t$と等しい部分列として選び、"BC"と"C"に分割し、それらを$B$に追加する。

step2では、$A$を$B$に置き換え、$B$を空にし、操作回数は2となる。

3回目の操作は、$A=${ "" , "AB" , "BC" , "C" }で始まる。

step1では、$u=$""に対して、$t$と等しい部分列が存在しないため、ここで操作を終了する。

この例の場合、3回目の操作ではstep1で操作が終了したため、操作回数は2となる。

Sample Input 2

abaabbabaabaabbabbabaabbab
ab

Sample Output 2

3

Sample Input 3

AbCdEfG
aBcDeFg

Sample Output 3

0
Problem E: Light

Problem

$W \times H$ の二次元のマス上に$N$個の街灯がある。

がっちょ君は$(1,1)$からスタートして$(W,H)$に行きたい。

がっちょ君は暗いところが怖いので、街灯により明るくなっているマスしか歩きたくない。

最初、すべての街灯はその街灯のあるマスのみを明るくしている。

そこで、がっちょ君は好きな街灯$i$に対してコスト$r_i$を設定することにした。なお、コストを設定しない街灯があってもよい。

街灯$i$はコスト$r_i$を消費することにより、その街灯を中心にマンハッタン距離で$r_i$以内の範囲を明るくすることができる。ただしコストは正の整数とする。

がっちょ君は上下左右のいずれかの方向に隣接するマスに移動する事ができる。

がっちょ君は$r_i$の合計値を最小になるように設定することにした。そのときの合計値を求めよ。

2つの地点 $(a,b)$ と $(c,d)$ 間のマンハッタン距離は $|a−c|$+$|b−d|$ で表される。

Input

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

$W$ $H$ $N$
$x_1$ $y_1$
...
$x_N$ $y_N$

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

1行目に$W$と$H$と$N$が空白区切りで与えられる。

続く$N$行に街灯$i$の座標$($$x_i$,$y_i$$)$が空白区切りで与えられる。

Constraints

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

$1 \leq W \leq 500$

$1 \leq H \leq 500$

$1 \leq N \leq 100$

$1 \leq N \leq W \times H$

$1 \leq $$x_i$$ \leq W$

$1 \leq $$y_i$$ \leq H$

同じ座標に複数の街灯はない

Output

$r_i$の合計値の最小値を1行に出力せよ。

Sample Input 1

10 10 1
6 6

Sample Output 1

10

Sample Input 2

5 10 3
3 9
2 8
5 1

Sample Output 2

8

Sample Input 3

1 1 1
1 1

Sample Output 3

0
Problem F: Ghost Legs

Problem

縦線が３本のあみだくじが$N$個ある。

どの線からスタートしてもスタートした線で終わるあみだくじを良いあみだくじとする。

あみだくじを１つ以上選んで縦に自由な順序でつなぐことができる。

良いあみだくじを作ることができるのであれば"yes"、そうでなければ"no"を出力せよ。

$i$番目のあみだくじには横線が$w_i$本ある。

$a_{i,j}$はあみだくじ$i$の上から$j$番目の横棒が中央の縦線から左右どちらに伸びているかを表し、

$a_{i,j}$が0ならば左に、1ならば右に伸びていることを表す。

Input

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

$N$
$w_1$ $a_{1,1}$ $a_{1,2}$ ... $a_{1,w_1}$
$w_2$ $a_{2,1}$ $a_{2,2}$ ... $a_{2,w_2}$
...
$w_N$ $a_{N,1}$ $a_{N,2}$ ... $a_{N,w_N}$

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

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

続く$N$行に$w_i$と$w_i$個の$a_{i,j}$が空白区切りで与えられる。

Constraints

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

$1 \le N \le 50$

$0 \le w_i \le 100$

$a_{i,j}$は0または1

Output

良いあみだくじを作ることができるのであれば"yes"、そうでなければ"no"を出力する。

Sample Input 1

3
2 0 0
1 1
5 1 0 0 1 0

Sample Output 1

yes

Sample Input 2

2
1 1
1 0

Sample Output 2

no
Problem G: Combine Two Elements

Problem

$N$個の非負整数のペア$(a_i, b_i)$と非負整数$A$, $B$ が与えられる。

以下のいずれかの操作をできるだけたくさん行いたい。

$|a_i - b_i| \leq A$ または $B \leq |a_i - b_i| \leq 2A$を満たす要素$i$を取り出し、削除する

$|(a_i + a_j) - (b_i + b_j)| \leq A$ または $B \leq |(a_i + a_j) - (b_i + b_j)| \leq 2A$ を満たす要素$i$と要素$j$ ($i \neq j$)の組を取り出し、削除する

最大の操作回数を求めよ。

Input

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

$N$ $A$ $B$
$a_1$ $b_1$
$a_2$ $b_2$
...
$a_N$ $b_N$

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

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

2行目以降の$N$行に$i$個目のペア$a_i$と$b_i$($1 \leq i \leq N$)が空白区切りで与えられる。

Constraints

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

$1 \leq N \leq 800 $

$0 \leq A, B \leq 10^5 $

$0 \leq a_i, b_i \leq 10^5$

$A \leq B$ かつ $B \leq 2A$

Output

最大の操作回数を1行に出力せよ。

Sample Input 1

5 3 5
7 2
13 1
1 1
2 9
2 4

Sample Output 1

4

(7,2)を選んで削除する。

(1,1)を選んで削除する。

(2,4)を選んで削除する。

(13, 1)と(2, 9)を選んで削除する。

以上のように操作すると４回操作することができ、これが最大となる。

Sample Input 2

10 7 12
34 70
36 0
12 50
76 46
33 45
61 21
0 1
24 3
98 41
23 84

Sample Output 2

5
Problem H: Hth Number

Problem

長さ$N$の文字列$S$がある。$S$に含まれる文字はすべて0以上9以下の数字である。

$S$のすべての部分文字列から作られる数を全列挙してできた項数$\frac{N\times(N+1)}{2}$の数列を作った時、
その数列の中で$H$番目に小さい値を求めよ。

Input

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

$N$ $H$
$S$

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

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

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

Constraints

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

$1 \leq N \leq 10^5$

$1 \leq H \leq \frac{N \times (N+1)}{2}$

$|S| = N$

$S$に含まれる文字はすべて0, 1, 2, 3, 4, 5, 6, 7, 8, 9のいずれかである

Output

$H$番目の値を1行に出力せよ。

(出力の先頭に余計な0は含んではならない。)

Sample Input 1

2 3
00

Sample Output 1

0

Sample Input 2

4 9
0012

Sample Output 2

12

Sample Input 3

5 13
10031

Sample Output 3

100

Sample Input3の場合、10031の部分文字列から作られる数は以下の通りである。

1, 0, 0, 3, 1

10, 00, 03, 31

100, 003, 031

1003, 0031

10031

これらをを小さい順に並べると
0, 0, 0, 1, 1, 3, 3, 3, 10, 31, 31, 31, 100, 1003, 10031 になり、13番目に小さい値は100である。
Problem I: Explosion

Problem

大魔王めぐみんは地上に生存する$N$人の勇者を倒そうと考えている。

めぐみんは$M$回まで爆発魔法を唱えることができる。

爆発魔法は任意の座標を中心に半径$r$以内に存在している勇者を消滅させる魔法である。

勇者はとても痩せているため大きさは考慮しなくてよい。

$M$回の爆発魔法は全て同じ大きさの半径で唱えるものとする。

勇者を全滅させるのに必要最小限の半径の魔法を使うことにした。

爆発魔法の半径の大きさを最小化せよ。

Input

$N$ $M$
$x_1$ $y_1$
...
$x_N$ $y_N$

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

1行目に 勇者の数 $N$ 、唱える爆発の数 $M$ が整数で与えられる。

2行目以降にそれぞれの勇者$i$の座標 $x_i$ $,$ $y_i$ が整数で与えられる。

Constraints

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

$1 \leq M \leq N \leq 14$

$0 \leq x_i $,$ y_i \leq 10^5$

Output

爆発魔法の半径の最小値を実数で出力せよ。

$10^{-3}$を超える絶対誤差を含んではならない。

Sample Input 1

5 2
0 0
5 5
10 10
100 100
200 200

Sample Output 1

70.710678118755

Sample Input 2

10 5
321 675
4312 6534
312 532
412 6543
21 43
654 321
543 0
32 5
41 76
5 1

Sample Output 2

169.824909833728

Sample Input 3

14 3
312 342
4893 432
321 4
389 4
23 543
0 0
1 1
2 2
432 12
435 32
1 5
2 10
100 100
20 50

Sample Output 3

218.087711712613

Sample Input 4

5 2
0 0
0 0
0 0
0 0
0 0

Sample Output 4

0.000000000001