結果

問題 No.3161 Find Presents
ユーザー kidodesu
提出日時 2025-05-23 20:21:57
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 401 ms / 4,000 ms
コード長 1,259 bytes
コンパイル時間 479 ms
コンパイル使用メモリ 82,712 KB
実行使用メモリ 94,184 KB
平均クエリ数 3351.21
最終ジャッジ日時 2025-05-23 20:22:24
合計ジャッジ時間 23,564 ms
ジャッジサーバーID
(参考情報)
judge5 / judge2
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 80
権限があれば一括ダウンロードができます

ソースコード

diff #

Ans = []

def made0(x, y0, y1):
    my = (y0+y1) // 2
    print("?", x, x, y0, my-1)
    if int(input()):
        if y0 == my-1:
            Ans.append((x, y0))
        else:
            made0(x, y0, my)
    print("?", x, x, my, y1-1)
    if int(input()):
        if my == y1-1:
            Ans.append((x, my))
        else:
            made0(x, my, y1)

def made1(x0, x1, y):
    mx = (x0+x1) // 2
    print("?", x0, mx-1, y, y)
    if int(input()):
        if x0 == mx-1:
            Ans.append((x0, y))
        else:
            made0(x0, mx, y)
    print("?", mx, x1, y, y)
    if int(input()):
        if mx == x1-1:
            Ans.append((mx, y))
        else:
            made0(mx, x1, y)

def J(x0, x1, y0, y1):
    print("?", x0, x1-1, y0, y1-1)
    if int(input()):
        if x0 == x1-1 and y0 == y1-1:
            Ans.append((x0, y0))
        elif x0 == x1-1:
            made0(x0, y0, y1)
        elif y0 == y1-1:
            made1(x0, x1, y0)
        else:
            make(x0, x1, y0, y1)

def make(x0, x1, y0, y1):
    mx = (x0+x1) // 2
    my = (y0+y1) // 2
    J(x0, mx, y0, my)
    J(x0, mx, my, y1)
    J(mx, x1, y0, my)
    J(mx, x1, my, y1)

make(0, 10**6+1, 0, 10**6+1)

print("!", len(Ans))
for x, y in Ans:
    print(x, y)
    
    
0