結果
| 問題 | No.3212 SUPER Guess the Number |
| コンテスト | |
| ユーザー |
akakimidori
|
| 提出日時 | 2025-07-25 22:11:51 |
| 言語 | Rust (1.83.0 + proconio) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,167 bytes |
| 記録 | |
| コンパイル時間 | 19,356 ms |
| コンパイル使用メモリ | 394,720 KB |
| 実行使用メモリ | 25,856 KB |
| 平均クエリ数 | 22.00 |
| 最終ジャッジ日時 | 2025-07-25 22:12:14 |
| 合計ジャッジ時間 | 19,913 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | WA * 12 |
ソースコード
fn main() {
let mut cnt = 0;
let mut query = |x: i32| -> i32 {
assert!(cnt < 25);
cnt += 1;
println!("? {x}");
if cnt > 1 {
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()
}
akakimidori