結果

問題 No.513 宝探し2
ユーザー flippergo
提出日時 2024-10-21 08:49:06
言語 PyPy3
(7.3.15)
結果
RE  
実行時間 -
コード長 1,159 bytes
コンパイル時間 579 ms
コンパイル使用メモリ 82,452 KB
実行使用メモリ 84,720 KB
平均クエリ数 72.50
最終ジャッジ日時 2024-10-21 08:49:10
合計ジャッジ時間 2,696 ms
ジャッジサーバーID
(参考情報)
judge2 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 9 RE * 3
権限があれば一括ダウンロードができます

ソースコード

diff #

x0 = 0
x1 = 10**5
y0 = 0
y1 = 10**5
cnt = 0
A = []
B = []
while True:
    if len(B)>0:
        a,b = B.pop()
    elif cnt%4==0:
        a = (3*x0+x1)//4
        b = (3*y0+y1)//4
    elif cnt%4==1:
        a = (x0+3*x1)//4
        b = (3*y0+y1)//4
    elif cnt%4==2:
        a = (x0+3*x1)//4
        b = (y0+3*y1)//4
    else:
        a = (3*x0+x1)//4
        b = (y0+3*y1)//4
    print(a,b)
    d = int(input())
    # print(f"(x0,x1)=({x0},{x1}), (y0,y1)=({y0},{y1}), cnt={cnt}, d={d}")
    if d==0:break
    if d==1:
        B = [(a-1,b),(a+1,b),(a,b-1),(a,b+1)]
        continue
    A.append((a,b,cnt%4,d))
    if cnt%4==3:
        dmin = 10**9
        for i in range(4):
            a,b,cnt0,d = A[i]
            if d<dmin:
                dmin = d
                amin = a
                bmin = b
                cmin = cnt0
        if cmin==0:
            x1 = (x0+x1)//2
            y1 = (y0+y1)//2
        elif cmin==1:
            x0 = (x0+x1)//2
            y1 = (y0+y1)//2
        elif cmin==2:
            x0 = (x0+x1)//2
            y0 = (y0+y1)//2
        else:
            x1 = (x0+x1)//2
            y0 = (y0+y1)//2
        A = []
    cnt += 1
0