Submission #32641571
Source Code Expand
fn read<T: std::str::FromStr>(
stdin_lock: &mut std::io::StdinLock,
buf: &mut Vec<u8>,
delimiter: u8,
) -> T {
buf.clear();
let l = std::io::BufRead::read_until(stdin_lock, delimiter, buf).unwrap();
buf.truncate(l - 1); // remove delimiter
let s = unsafe { std::str::from_utf8_unchecked(&buf) };
s.parse().unwrap_or_else(|_| panic!("read"))
}
fn main() {
let stdin = std::io::stdin();
let mut stdin_lock = stdin.lock();
let mut buf: Vec<u8> = Vec::new();
let n: usize = read(&mut stdin_lock, &mut buf, b'\n');
let inf = n + 1;
let mut d_1 = vec![inf; n + 1];
let mut d_2 = vec![inf; n + 1];
let mut count3 = vec![];
let mut min = inf;
for i in 3..=n {
println!("? 1 {}", i);
d_1[i] = read(&mut stdin_lock, &mut buf, b'\n');
println!("? 2 {}", i);
d_2[i] = read(&mut stdin_lock, &mut buf, b'\n');
let d_i = d_1[i] + d_2[i];
min = min.min(d_i);
if d_i == 3 {
count3.push(i);
}
}
if min != 3 {
println!("! {}", min);
return;
}
if count3.len() != 2 {
println!("! 1");
return;
}
let (x, y) = (count3[0], count3[1]);
println!("? {} {}", x, y);
let d_xy: usize = read(&mut stdin_lock, &mut buf, b'\n');
println!("! {}", if d_xy == 1 { 3 } else { 1 });
}
Submission Info
| Submission Time | |
|---|---|
| Task | C - Tree Queries |
| User | bouzuya |
| Language | Rust (1.42.0) |
| Score | 500 |
| Code Size | 1366 Byte |
| Status | AC |
| Exec Time | 15 ms |
| Memory | 3872 KiB |
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 500 / 500 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | 00_sample_00.txt |
| All | 00_sample_00.txt, 01_shnd_00.txt, 01_shnd_01.txt, 01_shnd_02.txt, 01_shnd_03.txt, 02_srnd_00.txt, 02_srnd_01.txt, 02_srnd_02.txt, 02_srnd_03.txt, 02_srnd_04.txt, 02_srnd_05.txt, 02_srnd_06.txt, 03_rnd_00.txt, 03_rnd_01.txt, 03_rnd_02.txt, 03_rnd_03.txt, 03_rnd_04.txt, 03_rnd_05.txt, 03_rnd_06.txt, 04_killer_00.txt, 04_killer_01.txt, 04_killer_02.txt, 04_killer_03.txt, 04_killer_04.txt, 04_killer_05.txt, 04_killer_06.txt, 04_killer_07.txt, 04_killer_08.txt, 04_killer_09.txt, 04_killer_10.txt, 04_killer_11.txt, 04_killer_12.txt, 04_killer_13.txt, 04_killer_14.txt, 04_killer_15.txt, 04_killer_16.txt, 04_killer_17.txt, 05_max_00.txt, 05_max_01.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 00_sample_00.txt | AC | 12 ms | 3768 KiB |
| 01_shnd_00.txt | AC | 6 ms | 3764 KiB |
| 01_shnd_01.txt | AC | 6 ms | 3744 KiB |
| 01_shnd_02.txt | AC | 6 ms | 3688 KiB |
| 01_shnd_03.txt | AC | 4 ms | 3820 KiB |
| 02_srnd_00.txt | AC | 6 ms | 3648 KiB |
| 02_srnd_01.txt | AC | 5 ms | 3800 KiB |
| 02_srnd_02.txt | AC | 5 ms | 3804 KiB |
| 02_srnd_03.txt | AC | 4 ms | 3784 KiB |
| 02_srnd_04.txt | AC | 5 ms | 3800 KiB |
| 02_srnd_05.txt | AC | 7 ms | 3688 KiB |
| 02_srnd_06.txt | AC | 6 ms | 3688 KiB |
| 03_rnd_00.txt | AC | 11 ms | 3784 KiB |
| 03_rnd_01.txt | AC | 9 ms | 3756 KiB |
| 03_rnd_02.txt | AC | 9 ms | 3844 KiB |
| 03_rnd_03.txt | AC | 9 ms | 3724 KiB |
| 03_rnd_04.txt | AC | 11 ms | 3716 KiB |
| 03_rnd_05.txt | AC | 10 ms | 3748 KiB |
| 03_rnd_06.txt | AC | 9 ms | 3792 KiB |
| 04_killer_00.txt | AC | 14 ms | 3840 KiB |
| 04_killer_01.txt | AC | 14 ms | 3856 KiB |
| 04_killer_02.txt | AC | 8 ms | 3836 KiB |
| 04_killer_03.txt | AC | 9 ms | 3864 KiB |
| 04_killer_04.txt | AC | 11 ms | 3820 KiB |
| 04_killer_05.txt | AC | 9 ms | 3800 KiB |
| 04_killer_06.txt | AC | 11 ms | 3808 KiB |
| 04_killer_07.txt | AC | 10 ms | 3808 KiB |
| 04_killer_08.txt | AC | 9 ms | 3836 KiB |
| 04_killer_09.txt | AC | 15 ms | 3796 KiB |
| 04_killer_10.txt | AC | 8 ms | 3820 KiB |
| 04_killer_11.txt | AC | 8 ms | 3872 KiB |
| 04_killer_12.txt | AC | 13 ms | 3832 KiB |
| 04_killer_13.txt | AC | 10 ms | 3792 KiB |
| 04_killer_14.txt | AC | 11 ms | 3728 KiB |
| 04_killer_15.txt | AC | 9 ms | 3788 KiB |
| 04_killer_16.txt | AC | 11 ms | 3824 KiB |
| 04_killer_17.txt | AC | 11 ms | 3676 KiB |
| 05_max_00.txt | AC | 10 ms | 3796 KiB |
| 05_max_01.txt | AC | 8 ms | 3680 KiB |