結果
| 問題 | No.3591 I Love Graph |
| コンテスト | |
| ユーザー |
detteiuu
|
| 提出日時 | 2026-10-20 22:49:57 |
| 言語 | PyPy3 (8.0.0 + ACL) |
| 結果 |
AC
不安定
|
| 実行時間 | 433 ms / 2,000 ms |
| + 999µs | |
| コード長 | 790 bytes |
| 記録 | |
| コンパイル時間 | 306 ms |
| コンパイル使用メモリ | 64,900 KB |
| 実行使用メモリ | 64,208 KB |
| 平均クエリ数 | 2775.25 |
| 最終ジャッジ日時 | 2026-10-20 22:50:22 |
| 合計ジャッジ時間 | 12,805 ms |
|
ジャッジサーバーID (参考情報) |
judge6_0 / judge2_0 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 36 |
ソースコード
def question(s, l, r):
if (s, l, r) in memo:
return memo[(s, l, r)]
print("?", 1, r-l+1, s+1, *list(range(l+1, r+2)))
memo[(s, l, r)] = int(input())
return memo[(s, l, r)]
def answer(edge):
print("!", len(edge))
for u, v in edge:
print(u+1, v+1)
N = int(input())
memo = dict()
edge = []
for i in range(N-1):
res = question(i, i+1, N-1)
if res == 0:
continue
l = i+1
while l < N:
res = question(i, l, N-1)
if res == 0: break
left = l-1
right = N-1
while left+1 < right:
mid = (left+right)//2
if question(i, l, mid) == 0:
left = mid
else:
right = mid
edge.append((i, right))
l = right+1
answer(edge)
detteiuu