A - 時差

Time Limit: 2 sec / Memory Limit: 256 MB

配点: 100

問題文

PAKEN 君は地理の授業で「時差」というものを学んだ.

地球上だと経度が 15 度違うごとに 1 時間の時差がある.

東経か西経かを表す文字 C1, C2 (西経ならば W, 東経ならば E) と二地点の経度 A, B (それぞれ C1, C2 に対応する) が二行にわたって与えられるので, その間の時差を求めなさい.

ただし, 日付変更線は東経 180 度にあるものとし, 時差は日付変更線をまたがないように差を取ったものだとする. 例えば, 東経 120 度 (E 120) と東経 90 度 (E 90) の間の時差は 2 時間である. また, 西経 165 度 (W 165) と東経 165 度 (E 165) の間の時差は 22 時間である.


入力

入力は以下の形式で標準入力から与えられる.

C1 A
C2 B

出力

二地点の間の時差を出力せよ.

制約

  • C1, C2WE のどちらかである.
  • A, B0 以上 180 未満の 15 の倍数である.

小課題

この問題には小課題 / 部分点はない.

入力例1

E 120
E 90

出力例1

2

東経 120 度と東経 90 度の間に生じる時差は 2 時間である.

入力例2

W 165
E 165

出力例2

22

西経 165 度と東経 165 度の間に生じる時差は 22 時間である.

writer: waserabi_29


B - 鰻と忖度

Time Limit: 2 sec / Memory Limit: 256 MB

配点: 200

ストーリー

ある日, ヅラーク君は, 一匹の大きな鰻を見つけた. 彼は, その鰻を連れて帰って一緒に暮らすことにした.

しかし, 家では E869120 が物品の出入りを見張っているので, 無断で持ち込むことはできない.


さて, E869120 は大きい 6, 11 の倍数が大好きであるので, 鰻の長さが 6, 11 の倍数であるとき, また長さが長いほど, 検閲を通る可能性が高い.

検閲をどうしても通したいヅラーク君は, 鰻の長さを整数 N に改竄することにした. しかしあまりキリが良いとばれてしまうので, 彼はキリがあまり良くならないように頑張って数を決めた.

しかし, 頑張りすぎたせいか不幸にも N6, 11 の倍数かどうか判定することができなくなってしまったのである.

そこで, その頑張りを陰から見守るあなたに, N6, 11 の倍数か判定するプログラムを書いて, 彼を助けてもらいたい.


問題文

整数 N が与えられる. N6 の倍数であるか, N11 の倍数であるか, それぞれについて求めなさい.


入力

入力は以下の形式で標準入力から与えられる.

N

出力

出力は, 以下の形式で標準出力から行うこと.

Result1
Result2

Result16 で割り切れるかどうか, Result211 で割り切れるかどうかを示す. Result1, Result2 は, それぞれについて割りきれる場合 yES, 割りきれない場合 nO となる.

制約

  • N0 以上 10^{200 \ 000} 以下の整数.

小課題

この問題には小課題 / 部分点はない.

入力例1

11

出力例1

nO
yES

116 の倍数ではないが, 11 の倍数である.

writer: Thistle


C - 新入生歓迎数列 - Easy

Time Limit: 2 sec / Memory Limit: 256 MB

配点: 300

問題文

新入生の PAKEN 君は, 入部記念に先輩から長さ N の整数列 A = {A_1, A_2, A_3, ..., A_N} をもらった.

PAKEN 君は机の上に N 枚のカードを一列に, 左から i 番目のカードに書かれている数が A_i となるように並べた.

あなたはこのカードの並びに対して, 以下のような操作を好きなだけすることができる.

  • 隣り合う 2 枚のカードを選び, それを取り除き, その後, 取り除いた 2 つのカードのが書かれたカードを, 取り除いた場所に置く.
  • 例えば, カードの並びが {7, 6, 8, 4} であり, 68 を取り除く操作を行った場合, 操作後のカードの並びは {7, 48, 4} となる.

PAKEN 君は, 整数 P が大好きなので, 机の上に P が書かれたカードが 1 枚でもあれば喜ぶ. そのとき, PAKEN 君を喜ばせることができるかどうかを判定せよ.


入力

入力は以下の形式で標準入力から与えられる.

N P
A_1 A_2 A_3 ... A_N

出力

PAKEN 君を喜ばせることができるなら Yay!, そうでないなら :( と出力せよ.

制約

  • N1 以上 100 \ 000 以下の整数
  • P1 以上 1 \ 000 \ 000 \ 000 以下の整数
  • A_i1 以上 9 以下の整数

小課題

この問題には小課題 / 部分点はない.

入力例1

5 10
1 3 5 2 4

出力例1

Yay!

最初のカードの並びは, {1, 3, 5, 2, 4} である. その状態から, カード 5, 2 に対して操作を行うと, カードの並びは {1, 3, 10, 4} となる.

そうすると, 10 が出てくるので, PAKEN 君は喜ぶ.

入力例2

2 11
3 4

出力例2

:(

最初のカードの並びは {3, 4} である. まず最初の状態には P = 11 が書かれたカードはないので, 操作を行うしかない, ここから操作する方法は, 3, 4 に対して操作を行うという 1 通りしかない.

操作を行うと, カードの並びは {12} となるため, これでも 11 は作れない. そのため, PAKEN 君を喜ばせることはできない.

入力例3

20 23328
2 9 4 7 2 1 5 4 8 1 9 5 6 6 1 9 1 9 8 1

出力例3

Yay!

writer: TAISA_


D - 巨大チェスボード

Time Limit: 2 sec / Memory Limit: 256 MB

配点: 400

問題文

ZRK 君は誕生日に Mr.RKZ からチェスボードをもらった. そのチェスボードは縦 H マス * 横 W マスとなっており, 全ての辺は外枠と並行もしくは直交している. 上から i 行目, 左から j 列目のマスをマス (i, j) とする. また, チェスボードのマス (1, 1) は黒く, 隣り合うマスには異なる色が塗られるように, 下図のように色が塗られている.

しかし, そのチェスボードはマス目の大きさがゆがんでおり, 上から i 行目のマスは全て高さが a_i, 左から j 列目のマスは全て幅が b_j となっている. (詳しくは下の図を参考にすること.)

不良品をもらってしまった ZRK 君は, 「左上のマスが (px, py) で右下のマスが (qx, qy) である長方形に含まれる, (黒い長方形の面積の合計) - (白い長方形の面積の合計)」を Q 回求める遊びをすることで心を落ち着けることにした. 怒っている ZRKのために, その答えを求めよ.


以下は, a_1=7, a_2=35, a_3=5, b_1=14, b_2=9, b_3=50 の場合のチェスボードの図である.


入力

入力は以下の形式で標準入力から与えられる.

H W Q
a_1 a_2 a_3 ... a_H
b_1 b_2 b_3 ... b_W
px_1 py_1 qx_1 qy_1
px_2 py_2 qx_2 qy_2
px_3 py_3 qx_3 qy_3
...
px_Q py_Q qx_Q qy_Q

出力

Q 行にわたって出力せよ.

i 行目には, 左上のマスが (px_i, py_i), 右下のマスが (qx_i, qy_i) である長方形に含まれる (黒い長方形の面積の合計) - (白い長方形の面積の合計) を出力せよ.

制約

  • H, W, Q1 以上 100 \ 000 以下の整数である.
  • a_i, b_i1 以上 10 \ 000 以下の整数である.
  • px_i, qx_i1 以上 H 以下の整数である.
  • py_i, qy_i1 以上 W 以下の整数である.
  • px_i \leq qx_i, py_i \leq qy_i である.

小課題

小課題1 [ 30点 ]

  • H, W \leq 1 \ 000 を満たす.
  • Q \leq 5 を満たす.

小課題2 [ 120点 ]

  • H, W \leq 1 \ 000 を満たす.

小課題3 [ 250点 ]

  • 追加の制約はない.

入力例1

3 3 2
7 35 5
14 9 50
1 1 2 2
1 1 3 2

出力例1

-140
-115

問題文中の画像の例である.

例えば, 1 回目の質問に対しては, 黒い部分の面積が (7 * 14) + (9 * 35) = 413 であり, 白い部分の面積が (7 * 9) + (14 * 35) = 553 である. (黒い部分の面積の合計) - (白い部分の面積の合計) = 413 - 553 = -140 である.

入力例2

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

出力例2

98
54
140
-90
0

writer: Ryo2016


E - デフレゲーム

Time Limit: 2 sec / Memory Limit: 256 MB

配点: 500

問題文

RZK 君はお金に困っている. ある日, RZK 君はお金がもらえる以下のようなゲームを見つけた.

  • 1 以上 n 以下の目がすべて等確率に出る n 面体のサイコロがある.
  • プレイヤーは, 前に出したことのある面をもう一回出すまでサイコロを振り続けることができる. プレイヤーは, a の目を出すと a 円もらえるが, 前に出したことのある面を出したときにはお金はもらえない.
  • 例えば, プレイヤーが 1 -> 5 -> 3 -> 5 という順に面を出した場合, 1 + 5 + 3 = 9 円プレイヤーがもらえる.

RZK 君はそのゲームがすごく魅力的に見えたが参加費がとても高いので, ゲームで得られる金額の期待値を求めてから参加を検討しようと思った.

そのとき, このゲームでもらえるお金の期待値を求めよ.


入力

入力は以下の形式で標準入力から与えられる.

n

出力

このゲームでもらえるお金の期待値を出力せよ. 絶対誤差または相対誤差が 10^{-7} 未満であれば, 正解となる.

制約

  • n1 以上 500 \ 000 以下の整数である.

小課題

小課題1 [ 60点 ]

  • n \leq 8.

小課題2 [ 120点 ]

  • n \leq 18.

小課題3 [ 320点 ]

  • 追加の制約はない.

入力例1

2

出力例1

2.25000000000000

1円もらえる確率が 0.25, 2円もらえる確率が 0.25, 3円もらえる確率が 0.5 なので、もらえる金額の期待値は 2.25 である.

入力例2

6

出力例2

9.71141975308642

writer: Ryo2016


F - 天使とふすま

Time Limit: 2 sec / Memory Limit: 256 MB

配点: 700

問題文

T さんは天界から降りてきて, 下界の勉強をしている天使である. 今日はとある館で手伝いをしながら和室の勉強をしており, 館の主人にふすまを閉めるように言われた.

美しいこの館にはふすま 1 からふすま N までの N 枚のふすまがあるが, ふすまの一つ一つが芸術作品なので, それぞれ幅と重さが違う. 中にはとても重いものもあり, T さんは体力が尽きないか心配になった.

今, N 枚のふすまは, 部屋の片方の端に揃っている. ふすま i は幅が A_i であり, 重さが B_iである. 全てのふすまの幅を合計すると, 部屋と部屋の境目の幅 (ふすまを動かせる幅) と同じになる. また, 彼女は重さ x のふすまを長さ y 移動させると, 体力を xy 消費する.

心配性な T さんのために, ふすまを完全に閉め切るのに必要な体力の合計の最小値を求めよ.


入力

入力は, 以下の形式で標準入力から与えられる.

N
A_1 B_1
A_2 B_2
A_3 B_3
...
A_N B_N

出力

T さんがふすまを完全に閉め切るのに必要な体力の最小値を出力しなさい.

制約

  • N1 以上 200 \ 000 以下の整数である.
  • A_i, B_i (1 \leq i \leq N) は 1 以上 10 \ 000 以下の整数である.

小課題

小課題1 [ 200点 ]

  • N \leq 10 を満たす.

小課題2 [ 500点 ]

  • 追加の制約はない.

入力例1

3
2 1
5 3
3 4

出力例1

17

上の図のように, ふすまを (ふすま 3) -> (ふすま 2) -> (ふすま 1) の順番で並べたら, 必要な体力は 0 * 4 + 3 * 3 + (3 + 5) * 1 = 17 となる.

入力例2

5
5 4
4 3
2 4
4 2
1 1

出力例2

62

ふすまを (ふすま 3) -> (ふすま 5) -> (ふすま 1) -> (ふすま 2) -> (ふすま 4) の順に並べたら, 必要な体力は 0 * 4 + 2 * 1 + 3 * 4 + 8 * 3 + 12 * 2 = 62 となる.

writer: ynymxiaolongbao


G - パソコンの買い替え

Time Limit: 2 sec / Memory Limit: 512 MB

配点: 700

問題文

Thistle 君の世界では, N 社がそれぞれ 1 種類ずつパソコンを製造している. それぞれのパソコンの性能は指数関数的に向上しており, 会社 i (1 \leq i \leq N) のパソコンの, 今からちょうど x 年後の性能は a_i*{b_i}^{x-r_i} である.

Thistle 君は, パソコンを K 回買い替える計画を立てた. 彼は, 今からちょうど y_i (1 \leq i \leq K) 年後にする i 回目の買い替えで, そのとき最も性能の高いパソコンを 1 台買う. ただし, 最も性能の高いパソコンが複数ある場合, その中のどれを買っても良い.

彼は, たくさんの会社のパソコンを使ってみたいので, これから K 回の買い替えで買うパソコンの種類数を最大化しようと思った. 彼が最大で何種類の会社のパソコンを買うことができるか求めよ.


入力

入力は以下の形式で標準入力から与えられる.

N
a_1 b_1 r_1
a_2 b_2 r_2
a_3 b_3 r_3
...
a_N b_N r_N
K
y_1
y_2
y_3
...
y_K

出力

Thistle 君が K 回の買い替えで買う事の出来るパソコンの会社の種類数の最大値を出力せよ.

制約

  • N, K1 以上 200 \ 000 以下の整数
  • a_i1 以上 200 \ 000 以下の整数
  • b_i2 以上 200 \ 000 以下の整数
  • r_i0 以上 200 \ 000 以下の整数
  • y_i0 以上 200 \ 000 以下の整数
  • y_i < y_{i+1} (1 \leq i \leq K - 1)
  • パソコンの買い替え時において, 一番性能の良いパソコンと二番目に性能が良いパソコンの性能は同じか, 1+10^{-11} 倍以上離れている. 一番性能の良いパソコンが同率で複数台あるときも、それより下とは 1+10^{-11} 倍以上離れている. (16:06 追記)

小課題

小課題1 [ 200点 ]

  • N, K \leq 1 \ 000 を満たす.

小課題2 [ 500点 ]

  • 追加の制約はない.

入力例1

3
4 2 0
2 4 0
1 6 0
3
0
1
2

出力例1

3
  • 0 年後には, 会社 1, 2, 3 それぞれのパソコンの性能は 4, 2, 1 である. よって, 1 回目の買い替えでは最も性能が高い会社 1 のパソコンが買える.
  • 1 年後には, 会社 1, 2, 3 それぞれのパソコンの性能は 8, 8, 6 である. よって, 2 回目の買い替えでは最も性能が高い会社 1, 2 のパソコンが買える.
  • 2 年後には, 会社 1, 2, 3 それぞれのパソコンの性能は 16, 32, 36 である. よって, 3 回目の買い替えでは最も性能が高い会社 3 のパソコンが買える.
  • それぞれの買い替えで, 順に会社 1 -> 2 -> 3 というようにパソコンを買っていくと, 3 種類の会社のパソコンを買うことができる.

入力例2

3
10 10 2
8 2 0
8 4 1
3
0
3
5

出力例2

3
  • 0 年後には, 会社 1, 2, 3 それぞれのパソコンの性能は 0.1, 8, 2 である. よって, 1 回目の買い替えでは最も性能が高い会社 2 のパソコンが買える.
  • 3 年後には, 会社 1, 2, 3 それぞれのパソコンの性能は 100, 64, 128 である. よって, 2 回目の買い替えでは最も性能が高い会社 3 のパソコンが買える.
  • 5 年後には, 会社 1, 2, 3 それぞれのパソコンの性能は 10000, 256, 2048 である. よって, 3 回目の買い替えでは最も性能が高い会社 1 のパソコンが買える.
  • それぞれの買い替えで, 順に会社 2 -> 3 -> 1 というようにパソコンを買っていくと, 3 種類の会社のパソコンを買うことができる.

入力例3

3
10 10 0
5 5 0
2 2 0
3
0
5
10

出力例3

1

全ての買い替え時において, パソコン 1 だけが最も性能が高い. よって Thistle 君は 1 種類の会社のパソコンしか買うことができない.

writer: autumn_eel


H - 新入生歓迎数列 - Hard

Time Limit: 3 sec / Memory Limit: 256 MB

配点: 1000

問題文

パ研の新入生の PAKEN 君は, 長さ N の数列 P = {P_1, P_2, P_3, ..., P_N} を E869120 からもらった. 最初 P のすべての要素は 0 である.

PAKEN 君は, 数列 P に以下の操作を好きな順番で, 合計で 550 \ 000 回以内行うことによって, この数列を A = {A_1, A_2, A_3, ..., A_N} と同じにしようと思った.

  • 操作 1: 1 以上 N 以下の整数 x を選び, P_x の値を 1 に変更する.
  • 操作 2: 1 以上 N 以下の整数 y, z を選び, P_y の値に P_z の値を足す. ただし, y = z であってもよい. また, P_y の値は 10^{18} を超えてはならない.

PAKEN 君はまだ幼いので, どのような手順で操作をすればよいのか分からない. 彼を助けるために, あなたは操作の手順の一例を示さなければならない.


入力

入力は, 以下の形式で標準入力から与えられる.

N
A_1 A_2 A_3 ... A_N

出力

出力は, 以下の形式で標準出力から行うこと.

Q
(1 回目の操作の情報)
(2 回目の操作の情報)
(3 回目の操作の情報)
...
(Q 回目の操作の情報)

まず最初に, 行う操作の回数 Q を出力しなければならない. Q0 以上 550 \ 000 以下の整数でなければならない. 次の Q 行, 各回の操作の情報は, 以下のように出力しなければならない.

(☆) 操作 1 を行う場合

1 x

これは, P_x1 にするという操作を行う, という意味である.


(★) 操作 2 を行う場合

2 y z

これは, P_yP_z の値を足すという操作を行う, という意味である.

制約

  • N2 以上 200 \ 000 以下の整数である.
  • A_1 = 1 を満たす.
  • A_i (1 \leq i \leq N)1 以上 2^{30} - 1 以下の整数である.

小課題

小課題1 [ 60点 ]

  • N = 2 を満たす.

小課題2 [ 140点 ]

  • N \leq 8 \ 000 を満たす.

小課題3 [ 80点 ]

  • N \leq 16 \ 000 を満たす.

小課題4 [ 230点 ]

  • N \leq 25 \ 000 を満たす.

小課題5 [ 270点 ]

  • N \leq 160 \ 000 を満たす.

小課題6 [ 220点 ]

    追加の制約はない.

入力例1

2
1 4

出力例1

4
1 1
1 2
2 2 2
2 2 2

操作によって, 数列の値は {0, 0} -> {1, 0} -> {1, 1} -> {1, 2} -> {1, 4} というように変わる.

入力例2

3
1 3 5

出力例2

8
1 1
2 1 1
2 3 1
1 1
2 1 2
2 2 1
2 3 1
1 1

操作によって, 数列の値は {0, 0, 0} -> {1, 0, 0} -> {2, 0, 0} -> {2, 0, 2} -> {1, 0, 2} -> {3, 0, 2} -> {3, 3, 2} -> {3, 3, 5} -> {1, 3, 5} というように変わる.

writer: E869120


I - 王国と M 種類の店

Time Limit: 2.5 sec / Memory Limit: 1024 MB

配点: 1100

問題文

PAKEN 王国は, N 頂点の木の構造をしている. 木の頂点 i (2 \leq i \leq N) は 頂点 P_i と, 長さ L_i で結ばれている.

王国には, 文房具店・スーパーマーケットなど, M 種類の店がある. (種類 1, 2, ..., 種類 M とよぶことにします) 各頂点にはちょうど 1 個店があり, 頂点 i には店 R_i がある.

頂点 i「不便さ」 は, 頂点 i からの (最寄りの種類 1 の店までの最短距離) + (最寄りの種類 2 の店までの最短距離) + ... + (最寄りの種類 M の店までの最短距離) と定義する.


そのとき, 頂点 1, 頂点 2, 頂点 3, ..., 頂点 N それぞれに対する不便さを求めよ.


入力

入力は以下の形式で標準入力から与えられる.

N M
P_2 P_3 ... P_N
L_2 L_3 ... L_N
R_1 R_2 R_3 ... R_N

1 行目には, 頂点数 N と, 店の種類数 M が空白区切りで入力される.

2 行目には, 辺の情報 P_2, P_3, ..., P_N が空白区切りで与えられる.

3 行目には, 辺の長さの情報 L_2, L_3, ..., L_N が空白区切りで与えられる.

4 行目には, 店の種類の情報 R_1, R_2, R_3, ..., R_N が空白区切りで与えられる. R_i は, 頂点 i の店の種類を表す.

出力

i 行目には, 頂点 i の不便さを 1 行で出力せよ.

注意

入力サイズが 1 ケース当たり 7.5 MB 程度と大きいので, C++ の場合 cin/cout ではなく scanf/printf を使うことが推奨される.

制約

  • N1 以上 400 \ 000 以下の整数.
  • M1 以上 400 \ 000 以下の整数.
  • P_i1 以上 i - 1 以下の整数.
  • L_i1 以上 1 \ 000 \ 000 以下の整数.
  • R_i1 以上 M 以下の整数.
  • 種類 1 から M まで, 全種類の店が 1 個以上ある.

小課題

小課題1 [ 55点 ]

  • N \leq 1 \ 500 を満たす.
  • M \leq 750 を満たす.

小課題2 [ 110点 ]

  • N, M \leq 70 \ 000 を満たす.
  • N = M を満たす.

小課題3 [ 275点 ]

  • N, M \leq 70 \ 000 を満たす.
  • 同じ種類の店は王国中に高々 8 個しか存在しない.

小課題4 [ 330点 ]

  • N, M \leq 70 \ 000 を満たす.

小課題5 [ 330点 ]

  • N, M \leq 400 \ 000 を満たす.

入力例1

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

出力例1

2
3
5
2
7

王国の図は以下のようになる.

入力例2

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

出力例2

3
5
8
18
11
2
3
13
17
21

王国の図は以下のようになる.

入力例3

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

出力例3

20
17
15
18
30

このケースは, 小課題 2 に含まれる.

writer: E869120


J - 円の重なり

Time Limit: 5 sec / Memory Limit: 1024 MB

配点: 1300

問題文

この問題はリアクティブ問題です.

平面上に N 個の円がある. これらの円の中心はすべて整数座標であり, x, y 座標は -1 \ 000 以上 1 \ 000 以下である. また, 円の半径もすべて 200 以上 1 \ 000 以下の整数である.

パ研の新入生の PAKEN 君は全ての円の情報を突き止めようと思っているが, 彼は円の個数 N しかしらない. 彼は E869120 に対して以下の質問をすることができる.

  • 座標 (p, q) はいくつの円の内部に含まれているか, という質問をすることができる. 境界の場合も含まれていると見做す. -5 \ 000 \leq p, q \leq 5 \ 000 を満たす必要がある. p, q は整数である必要はない.

PAKEN 君のために, できるだけ少ない回数の質問で全て円の情報を突き止めるプログラムを書け.


入出力

この問題はインタラクティブ問題である. そのため普通の問題とは入出力形式が違う.

1. まず, あなたは, 以下のような入力を受け取らなければならない.

N

N は, 平面上に存在する円の個数を表す.


2. 次に, あなたは質問をしなければならない. まず, 質問をするためには以下のように出力しなければならない.

? p q

あなたは '?', p, q空白区切りで一行に出力しなければならない. これは, 座標 (p, q) はいくつの円の内部に含まれているか, という質問をすることを意味する. p, q は小数でもよいが, 絶対値が 5 \ 000 以下でなければならない.


3. 質問への答えは, 以下のようにしてジャッジから入力として受け取らなければならない.

R

R は, 質問した座標は何個の円の内部に含まれているかを表す整数である. 質問への答えが終わったら, 2. もしくは 4. に行かなければならない.


4. 答えが分かったら, 分かったタイミングで質問の代わりに解答を行わなければならない. 解答をするためには, 以下のような出力を行わなければならない.

!
x_1 y_1 r_1
x_2 y_2 r_2
...
x_N y_N r_N

(x_i, y_i)i 個目の円の中心座標, r_ii 個目の円の半径を意味する.

解答を行う際には, N+1 行にわたって出力しなければならない.

1 行目には, '!' と出力しなければならない.

2 行目からは, N 行にわたって円の情報 (x_i, y_i, r_i) をその順に空白区切りで出力しなければならない. ただし, 出力する順番は中心座標の x 座標の小さい順, x 座標が同じであれば y 座標の小さい順に出力しなければならない.

制約

  • N1 以上 20 以下の整数.
  • 円の座標 (x_i, y_i) と円の半径 r_i は, 問題文中に書かれている制約を満たす.
  • 全てのケースは, 制約の範囲内で, 一様な確率でランダムに生成されたものである. 具体的には, それぞれの円に対して, まず中心座標が (-1000, -1000) から (1000, 1000) までの 4004001 個の中から一様な確率分布でランダムに選ばれ, 次に半径が 200 から 1000 までの 801 通りの選択肢の中から一様な確率分布で選ばれる.

注意

  • 出力形式を間違えたりした場合にジャッジ結果は不定である. (WA とは限らない)
  • また, 出力の最後に flush をする必要があり, そうしない場合 TLE となる場合がある.
  • あなたは, 50 \ 000 回を超える質問をしてはならない.

小課題 / 得点

小課題1 [ 200点 ]

  • N = 1 である.
  • 小課題 1 のケースは 10 個ある. 10 個全てのケースに対して, 50 \ 000 回以内の質問で答えを求めることができれば, 正解となる.

小課題2 [ 1 \ 100点 ]

  • N = 20 である.
  • 小課題 2 のケースは 20 個ある. 20 個全てのケースで 50 \ 000 回以内の質問で答えを求めることができれば正解となるが, 質問回数によって下記のように得点が変わる.

一番多くの質問回数を要したケースにおける質問回数を L* とおくとき, 得点は以下のように変動する.

  • 25 \ 001 \leq L* \leq 50 \ 000 のとき, 200 点.
  • 9 \ 001 \leq L* \leq 25 \ 000 のとき, 280 点.
  • 3 \ 001 \leq L* \leq 9 \ 000 のとき, 350 点.
  • 2 \ 001 \leq L* \leq 3 \ 000 のとき, 450 点.
  • 601 \leq L* \leq 2 \ 000 のとき, 300 + floor(\frac{480000}{L*})1 の位を切り捨てて 10 の位までの概数にした得点.
  • L* \leq 600 のとき, 1 \ 100 点満点.

入出力の例

例として, N = 2 であり, 片方の円の中心座標が (4, 7) で半径が 2, もう片方の円の中心座標が (3, 8) で半径が 3 である場合の入出力(インタラクティブ)の一例を示す.

入力 出力 備考
2 N の値を入力.
? 0 0 座標 (0, 0) はいくつの円に含まれているか質問する.
0 どちらの円にも含まれない. 当然 0 個である.
? 4 6.5 座標 (4, 6.5) はいくつの円に含まれているか質問する.
2 どちらの円にも含まれているので, 2 個である.
? 1.5 10 座標 (1.5, 10) はいくつの円に含まれているか質問する.
1 (3, 8) を中心とする半径 3 の円にのみ含まれているので, 1 個である.
!
3 8 3
4 7 2
(3, 8) を中心とする半径 3 の円と, (4, 7) を中心とする半径 2 の円があると答える.
中心の x 座標の小さい順, もしそれも同じであれば中心の y 座標の小さい順に出力する必要があることに注意せよ.

writer: E869120