結果
問題 |
No.3237 Find the Treasure!
|
ユーザー |
![]() |
提出日時 | 2025-08-16 02:39:16 |
言語 | PyPy3 (7.3.15) |
結果 |
WA
|
実行時間 | - |
コード長 | 813 bytes |
コンパイル時間 | 306 ms |
コンパイル使用メモリ | 82,584 KB |
実行使用メモリ | 97,008 KB |
平均クエリ数 | 3.00 |
最終ジャッジ日時 | 2025-08-16 02:39:27 |
合計ジャッジ時間 | 10,428 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 1 |
other | WA * 22 |
ソースコード
n=int(input()) e=[[] for i in range(n)] es=[] for i in range(n-1): u,v=map(int,input().split()) u-=1 v-=1 e[u]+=[v] e[v]+=[u] es+=[(u,v)] v=[0]*n u=[0]*n q=[0] v[0]=1 for s in q: for t in e[s]: if v[t]==0: v[t]=1 u[t]=u[s]^1 q+=[t] q=[a+1 if u[a] else b+1 for a,b in es] print("?",*q) a=input() if a=="Yes": p=[i for i in range(n) if u[i]==1] else: p=[i for i in range(n) if u[i]==0] while len(p)>1: pl=p[:len(p)//2] pr=p[len(p)//2:] u=[0]*n for i in pl: u[i]=1 for i in pr: u[i]=-1 q=[] for a,b in es: if u[a]==1: q+=[a+1] elif u[a]==-1: q+=[b+1] elif u[b]==1: q+=[b+1] elif u[b]==-1: q+=[a+1] print("?",*q) a=input() if a=="Yes": p=pl elif a=="No": p=pr else: exit() a=p[0]+1 print("!",a)