結果
| 問題 |
No.2085 Directed Complete Graph
|
| ユーザー |
|
| 提出日時 | 2024-10-22 22:55:43 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 309 ms / 2,000 ms |
| コード長 | 1,252 bytes |
| コンパイル時間 | 439 ms |
| コンパイル使用メモリ | 82,588 KB |
| 実行使用メモリ | 93,960 KB |
| 平均クエリ数 | 2472.00 |
| 最終ジャッジ日時 | 2024-10-22 22:55:50 |
| 合計ジャッジ時間 | 5,670 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 |
| other | AC * 15 |
ソースコード
def II() -> int : return int(input())
n = II()
def solve(a):
l = len(a)
if l == 1:
return a
a0 = solve(a[:l//2])
a1 = solve(a[l//2:])
res = []
l0 = len(a0)
l1 = len(a1)
i0,i1 = 0,0
while i0 < l0 and i1 < l1:
print("?",a0[i0],a1[i1])
if II():
res.append(a0[i0])
i0 += 1
else:
res.append(a1[i1])
i1 += 1
res.extend(a0[i0:])
res.extend(a1[i1:])
return res
ans = solve([*range(1,n+1)])
print("!")
print(n-1)
print(*ans)
# print("?",1,2)
# f = II()
# if f:
# now = [1,2]
# else:
# now = [2,1]
# for i in range(3,n+1):
# print("?",now[-1],i)
# if II():
# now = now + [i]
# continue
# print("?",i,now[0])
# if II():
# now = [i] + now
# continue
# #二分探索しましょう
# l = 0
# r = len(now)-1
# while r-l > 1:
# mid = (l+r)//2
# print("?",now[mid],i)
# f = II()
# assert f != -1
# if f:
# l = mid
# else:
# r = mid
# now = now[:r] + [i] + now[r:]
# print("!")
# print(n-1)
# print(*now)