結果
問題 |
No.3161 Find Presents
|
ユーザー |
![]() |
提出日時 | 2025-05-05 14:28:19 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 428 ms / 4,000 ms |
コード長 | 804 bytes |
コンパイル時間 | 352 ms |
コンパイル使用メモリ | 82,944 KB |
実行使用メモリ | 94,336 KB |
平均クエリ数 | 3406.26 |
最終ジャッジ日時 | 2025-05-05 21:11:09 |
合計ジャッジ時間 | 24,987 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 80 |
ソースコード
Xs = list() ans = list() MX = 1000000 def ask(xl, xr, yl, yr): print('?', xl, xr, yl, yr) ret = int(input()) assert(ret == 0 or ret == 1) return ret def findx(l, r): global Xs if l + 1 == r: Xs.append(l) return m = (l + r)//2 if ask(l, m - 1, 0, MX): findx(l, m) if ask(m, r - 1, 0, MX): findx(m, r) return def findy(l, r, x): global ans if l + 1 == r: ans.append((x, l)) return m = (l + r)//2 if ask(x, x, l, m - 1): findy(l, m, x) if ask(x, x, m, r - 1): findy(m, r, x) return def main(): findx(0, MX + 1) for x in Xs: findy(0, MX + 1, x) N = len(ans) print('!', N) for x, y in ans: print(x, y) if __name__ == '__main__': main()