結果
問題 |
No.3018 目隠し宝探し
|
ユーザー |
![]() |
提出日時 | 2025-01-28 00:29:30 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,528 bytes |
コンパイル時間 | 797 ms |
コンパイル使用メモリ | 12,416 KB |
実行使用メモリ | 31,104 KB |
平均クエリ数 | 2.68 |
最終ジャッジ日時 | 2025-01-28 00:29:47 |
合計ジャッジ時間 | 15,831 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | WA * 1 |
other | AC * 6 WA * 15 |
ソースコード
from collections import * from itertools import * from functools import cache, partial from pprint import pprint import sys from typing import Any, Final try: from icecream import ic except ImportError: # Graceful fallback if IceCream isn't installed. ic = lambda *a: None if not a else (a[0] if len(a) == 1 else a) # noqa debug = partial(print, file=sys.stderr) dpprint = partial(pprint, stream=sys.stderr) sys.setrecursionlimit(10**6) MOD = 998244353 H, W = map(int, input().split()) p = 3 if H == 1 and W == 1: print("!", 1, 1) exit() if H != 1 and W != 1: # 3回クエリを投げたら (y, x) がわかる queries = ((1, 1), (1, W), (H, 1)) 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 == 1 print("!", 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()