結果

問題 No.1429 Simple Dowsing
ユーザー toshiro_yanagi
提出日時 2025-04-13 23:48:44
言語 Python3
(3.13.1 + numpy 2.2.1 + scipy 1.14.1)
結果
TLE  
実行時間 -
コード長 1,115 bytes
コンパイル時間 287 ms
コンパイル使用メモリ 12,416 KB
実行使用メモリ 44,204 KB
最終ジャッジ日時 2025-04-13 23:48:52
合計ジャッジ時間 7,012 ms
ジャッジサーバーID
(参考情報)
judge5 / judge2
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other TLE * 1 -- * 14
権限があれば一括ダウンロードができます

ソースコード

diff #

# %%
def f1(r):
    for a in range(N, -1, -1):
        for b in range(1 + a):
            if a**2 + b**2 == r:
                return a, b


def main(flg=True, aa=-1, bb=-1, check=False):
    def f(a, b):
        if flg:
            return int(input())
        return (aa - a) ** 2 + (bb - b) ** 2

    a, b = 0, 0
    r = []
    for i in range(2):
        r.append(f(a, b))
        if flg or check:
            if check and i == 0:
                print("AB:", aa, bb)
            print("?", a, b)
            if check:
                print("  r=", r[-1])
        if i == 0:
            a, b = f1(r[-1])
        if i == 1:
            x, y = f1(r[-1])
            a -= y
            b += x
    if flg or check:
        print("!", a, b)
    return a, b


def check(flg=False):
    for aa in range(5):
        for bb in range(5):
            if flg and not (aa == 3 and bb == 4):
                continue
            a, b = main(False, aa, bb, check=flg)
            if a != aa or b != bb:
                print("AB", aa, bb)
                print("ab", a, b)
                print()


N = 100
main()
# check(True)
0