結果
| 問題 | 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 | 
ソースコード
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)
    
    
            
            
            
        