結果

問題 No.3591 I Love Graph
コンテスト
ユーザー titia
提出日時 2026-07-17 21:39:16
言語 PyPy3
(7.3.17)
コンパイル:
pypy3 -mpy_compile _filename_
実行:
pypy3 _filename_
結果
AC  
実行時間 300 ms / 2,000 ms
+ 4µs
コード長 976 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 232 ms
コンパイル使用メモリ 95,852 KB
実行使用メモリ 88,232 KB
平均クエリ数 3111.33
最終ジャッジ日時 2026-07-17 21:39:26
合計ジャッジ時間 9,548 ms
ジャッジサーバーID
(参考情報)
judge3_0 / judge2_0
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 36
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

import sys
input = sys.stdin.readline

n=int(input())

E=[set() for i in range(n+1)]

ind=1

while ind<=n:
    ALL=set(range(1,n+1))
    ALL.remove(ind)
    for x in E[ind]:
        ALL.discard(x)

    L=list(ALL)

    if len(ALL)==0:
        ind+=1
        continue

    print("?",1,len(ALL),ind,*ALL,flush=True)

    ret=int(input())

    if ret==0:
        ind+=1
    elif ret==-1:
        break
    else:
        while len(ALL)>1:
            L=list(ALL)
            X=L[:len(L)//2]
            Y=L[len(L)//2:]

            print("?",1,len(X),ind,*X,flush=True)

            ret=int(input())

            if ret==0:
                ALL=Y
            elif ret==1:
                ALL=X
            else:
                break
        xx=list(ALL)[0]
        E[ind].add(xx)
        E[xx].add(ind)

    
ANS=[]

for i in range(1,n+1):
    for x in E[i]:
        if x>i:
            ANS.append((i,x))

print("!",len(ANS),flush=True)

for a,b in ANS:
    print(a,b,flush=True)
0