結果
| 問題 |
No.850 企業コンテスト2位
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2022-11-02 23:12:39 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 84 ms / 2,000 ms |
| コード長 | 749 bytes |
| コンパイル時間 | 208 ms |
| コンパイル使用メモリ | 82,004 KB |
| 実行使用メモリ | 78,204 KB |
| 平均クエリ数 | 200.46 |
| 最終ジャッジ日時 | 2024-07-17 11:08:02 |
| 合計ジャッジ時間 | 4,081 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 1 |
| other | AC * 27 |
ソースコード
def ask(x, y):
print("?", x + 1, y + 1, flush=True)
return int(input()) - 1
def judge(x):
print("!", x + 1)
exit()
n = int(input())
A = [i for i in range(n)]
vs = [-1] * n
while len(A) >= 2:
B = []
while len(A) >= 2:
x = A.pop()
y = A.pop()
z = ask(x, y)
B.append(z)
if x == z:
vs[y] = x
else:
vs[x] = y
A += B
x = A[0]
A = []
for i in range(n):
if vs[i] == x:
A.append(i)
while len(A) >= 2:
B = []
while len(A) >= 2:
x = A.pop()
y = A.pop()
z = ask(x, y)
B.append(z)
if x == z:
vs[y] = x
else:
vs[x] = y
A += B
judge(A[0])