結果
問題 |
No.3212 SUPER Guess the Number
|
ユーザー |
![]() |
提出日時 | 2025-07-25 22:10:19 |
言語 | Rust (1.83.0 + proconio) |
結果 |
TLE
|
実行時間 | - |
コード長 | 1,167 bytes |
コンパイル時間 | 14,013 ms |
コンパイル使用メモリ | 396,148 KB |
実行使用メモリ | 33,920 KB |
最終ジャッジ日時 | 2025-07-25 22:10:48 |
合計ジャッジ時間 | 17,004 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | TLE * 1 -- * 11 |
ソースコード
fn main() { let mut cnt = 0; let mut query = |x: i32| -> i32 { assert!(cnt < 25); cnt += 1; println!("? {x}"); if cnt > 0 { let v = read(); assert!(v != -1); v } else { 0 } }; let mut l = 1; let mut r = 1000000; query(l); let mut op = 0; while l < r { let res = if op == 0 { query(r) } else { query(l) }; match (op, res) { (0, 0) => { let m = (l + r) / 2; r = m; }, (0, 1) => { let m = (l + r + 1) / 2; l = m; op = 1; }, (1, 0) => { let m = (l + r + 1) / 2; l = m; }, (1, 1) => { let m = (l + r) / 2; r = m; op = 0; } _ => unreachable!(), }; } println!("! {}", l); } fn read() -> i32 { let mut s = String::new(); std::io::stdin().read_line(&mut s).unwrap(); s.trim().parse().unwrap() }