結果
問題 | No.3018 目隠し宝探し |
ユーザー |
![]() |
提出日時 | 2025-01-28 00:39:31 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
AC
|
実行時間 | 1,189 ms / 2,000 ms |
コード長 | 1,520 bytes |
コンパイル時間 | 854 ms |
コンパイル使用メモリ | 12,288 KB |
実行使用メモリ | 30,720 KB |
平均クエリ数 | 2.68 |
最終ジャッジ日時 | 2025-01-28 00:39:41 |
合計ジャッジ時間 | 9,046 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 1 |
other | AC * 21 |
ソースコード
from collections import *from itertools import *from functools import cache, partialfrom pprint import pprintimport sysfrom typing import Any, Finaltry:from icecream import icexcept ImportError: # Graceful fallback if IceCream isn't installed.ic = lambda *a: None if not a else (a[0] if len(a) == 1 else a) # noqadebug = partial(print, file=sys.stderr)dpprint = partial(pprint, stream=sys.stderr)sys.setrecursionlimit(10**6)MOD = 998244353H, W = map(int, input().split())p = 3if H == 1 and W == 1:print("!", 1, 1)exit()if H != 1 and W != 1:# 2回クエリを投げたら (y, x) がわかるqueries = ((1, 1), (1, 2))elif H == 1 and W == 1:# クエリを投げるまでもなく答えは (1, 1)print("!", 1, 1)exit()else:# 1回クエリを投げたら (y, x) がわかるprint("?", 1, 1)ic("?", 1, 1)d = int(input())for i in range(max(H, W) + 1):if i**2 == d:if H == 1:print("!", 1, i + 1)ic("!", 1, i + 1)else: # W == 1print("!", i + 1, 1)ic("!", i + 1, 1)exit()D = []for i, j in queries:print("?", i, j)ic("?", i, j)d = int(input())D.append(d)ic(D)for y in range(1, H + 1):for x in range(1, W + 1):E = [(i - y) ** 2 + (j - x) ** 2 for i, j in queries]# ic(y, x, E)if E == D:print("!", y, x)ic("!", y, x)exit()