結果
問題 |
No.1830 Balanced Majority
|
ユーザー |
![]() |
提出日時 | 2022-02-04 22:27:35 |
言語 | PyPy3 (7.3.15) |
結果 |
WA
|
実行時間 | - |
コード長 | 781 bytes |
コンパイル時間 | 260 ms |
コンパイル使用メモリ | 82,176 KB |
実行使用メモリ | 70,624 KB |
平均クエリ数 | 7.54 |
最終ジャッジ日時 | 2024-06-11 12:04:58 |
合計ジャッジ時間 | 3,146 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 1 |
other | AC * 5 WA * 20 |
ソースコード
import sys n = int(input()) li = [-1]*n now=1 print("? ",now,flush=True) q = int(input()) cri = q*2-now li[now-1]=cri a=cri now=n-1 print("? ",now,flush=True) q = int(input()) cri = q*2-now li[now-1]=cri b=cri if a*b>0: print("!",1,n-1,flush=True) sys.exit() #a*b<0 l=1 r=n-1 for i in range(18): lv=li[l-1] rv=li[r-1] mid = (l+r)//2 now=mid print("? ",now,flush=True) q = int(input()) cri = q*2-now li[now-1]=cri if cri==0: if mid<=n//2: print("!",mid,n,flush=True) else: print("!",1,mid,flush=True) sys.exit() elif cri>0: if lv>0: l=mid else: r=mid else: #cri<0 if lv<0: l=mid else: r=mid