Task: | Robotti |
Sender: | onyx |
Submission time: | 2024-11-04 02:00:10 +0200 |
Language: | Rust (2021) |
Status: | READY |
Result: | 0 |
group | verdict | score |
---|---|---|
#1 | RUNTIME ERROR | 0 |
#2 | RUNTIME ERROR | 0 |
test | verdict | time | group | |
---|---|---|---|---|
#1 | RUNTIME ERROR | 0.00 s | 1, 2 | details |
#2 | RUNTIME ERROR | 0.00 s | 1, 2 | details |
#3 | ACCEPTED | 0.00 s | 1, 2 | details |
#4 | ACCEPTED | 0.00 s | 1, 2 | details |
#5 | RUNTIME ERROR | 0.00 s | 1, 2 | details |
#6 | RUNTIME ERROR | 0.00 s | 1, 2 | details |
#7 | ACCEPTED | 0.00 s | 1, 2 | details |
#8 | ACCEPTED | 0.00 s | 1, 2 | details |
#9 | ACCEPTED | 0.00 s | 1, 2 | details |
#10 | RUNTIME ERROR | 0.00 s | 1, 2 | details |
#11 | RUNTIME ERROR | 0.00 s | 1, 2 | details |
#12 | ACCEPTED | 0.00 s | 2 | details |
#13 | RUNTIME ERROR | 0.00 s | 2 | details |
#14 | ACCEPTED | 0.01 s | 2 | details |
#15 | RUNTIME ERROR | 0.00 s | 2 | details |
#16 | RUNTIME ERROR | 0.00 s | 2 | details |
#17 | RUNTIME ERROR | 0.01 s | 2 | details |
#18 | ACCEPTED | 0.02 s | 2 | details |
#19 | TIME LIMIT EXCEEDED | -- | 2 | details |
#20 | ACCEPTED | 0.01 s | 2 | details |
#21 | RUNTIME ERROR | 0.01 s | 2 | details |
#22 | RUNTIME ERROR | 0.01 s | 2 | details |
#23 | RUNTIME ERROR | 0.01 s | 2 | details |
#24 | RUNTIME ERROR | 0.01 s | 2 | details |
Code
use std::io::{BufRead, BufReader}; fn main() { let mut amount = String::new(); let mut reader = BufReader::new(std::io::stdin()); reader.read_line(&mut amount).unwrap(); let mut building = String::with_capacity(amount.trim().parse().unwrap()); reader.read_line(&mut building).unwrap(); let rooms: Vec<(_, _)> = building.char_indices().collect(); let mut robot_pos = rooms.iter().position(|&x| x.1 == 'R').unwrap() as i32; let mut indices: Vec<_> = rooms .into_iter() .filter(|x| x.1 == '*') .map(|x| x.0 as i32) .collect(); let mut robot_index = match indices.binary_search_by(|x| x.cmp(&robot_pos)) { Ok(i) => i, Err(i) => i, }; let mut left = robot_pos - indices[robot_index - 1]; let mut right = indices[robot_index] - robot_pos; let mut steps = 0; let mut coins = 0; while left != right && !(left == -1 && right == -1) { let next = if left < right { if left == -1 { robot_pos + right } else { robot_pos - left } } else if right == -1 { robot_pos - left } else { robot_pos + right }; steps += i32::abs(robot_pos - next); coins += 1; indices.remove(indices.iter().position(|&x| x == next).unwrap()); robot_pos = next; robot_index = match indices.binary_search_by(|x| x.cmp(&robot_pos)) { Ok(i) => i, Err(i) => i, }; left = if robot_index as i32 - 1 < 0 { -1 } else { robot_pos - indices[robot_index - 1] }; right = if robot_index < indices.len() { indices[robot_index] - robot_pos } else { -1 }; } println!("{steps} {coins}"); }
Test details
Test 1
Group: 1, 2
Verdict: RUNTIME ERROR
input |
---|
1 R |
correct output |
---|
0 0 |
user output |
---|
(empty) |
Error:
thread 'main' panicked at 'index out of bounds: the len is 0 but the index is 18446744073709551615', input/code.rs:21:32 note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
Test 2
Group: 1, 2
Verdict: RUNTIME ERROR
input |
---|
10 ...R...... |
correct output |
---|
0 0 |
user output |
---|
(empty) |
Error:
thread 'main' panicked at 'index out of bounds: the len is 0 but the index is 18446744073709551615', input/code.rs:21:32 note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
Test 3
Group: 1, 2
Verdict: ACCEPTED
input |
---|
10 **.R...*** |
correct output |
---|
12 5 |
user output |
---|
12 5 |
Test 4
Group: 1, 2
Verdict: ACCEPTED
input |
---|
10 ***R****** |
correct output |
---|
0 0 |
user output |
---|
0 0 |
Test 5
Group: 1, 2
Verdict: RUNTIME ERROR
input |
---|
1000 R................................ |
correct output |
---|
947 9 |
user output |
---|
(empty) |
Error:
thread 'main' panicked at 'index out of bounds: the len is 9 but the index is 18446744073709551615', input/code.rs:21:32 note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
Test 6
Group: 1, 2
Verdict: RUNTIME ERROR
input |
---|
1000 ................................. |
correct output |
---|
886 9 |
user output |
---|
(empty) |
Error:
thread 'main' panicked at 'index out of bounds: the len is 9 but the index is 9', input/code.rs:22:21 note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
Test 7
Group: 1, 2
Verdict: ACCEPTED
input |
---|
1000 .....*..*....**..**..*......*.... |
correct output |
---|
1287 400 |
user output |
---|
1287 400 |
Test 8
Group: 1, 2
Verdict: ACCEPTED
input |
---|
1000 ************.*****************... |
correct output |
---|
0 0 |
user output |
---|
0 0 |
Test 9
Group: 1, 2
Verdict: ACCEPTED
input |
---|
1000 ******************************... |
correct output |
---|
0 0 |
user output |
---|
0 0 |
Test 10
Group: 1, 2
Verdict: RUNTIME ERROR
input |
---|
1000 R*****************************... |
correct output |
---|
999 999 |
user output |
---|
(empty) |
Error:
thread 'main' panicked at 'index out of bounds: the len is 999 but the index is 18446744073709551615', input/code.rs:21:32 note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
Test 11
Group: 1, 2
Verdict: RUNTIME ERROR
input |
---|
1000 ******************************... |
correct output |
---|
999 999 |
user output |
---|
(empty) |
Error:
thread 'main' panicked at 'index out of bounds: the len is 999 but the index is 999', input/code.rs:22:21 note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
Test 12
Group: 2
Verdict: ACCEPTED
input |
---|
10000 .......**........*...........*... |
correct output |
---|
10971 999 |
user output |
---|
10971 999 |
Test 13
Group: 2
Verdict: RUNTIME ERROR
input |
---|
10000 *..*....*......*.....*..*........ |
correct output |
---|
9999 999 |
user output |
---|
(empty) |
Error:
thread 'main' panicked at 'index out of bounds: the len is 999 but the index is 999', input/code.rs:22:21 note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
Test 14
Group: 2
Verdict: ACCEPTED
input |
---|
10000 *.*.*...**.*...*....**.**.**..... |
correct output |
---|
18766 5000 |
user output |
---|
18766 5000 |
Test 15
Group: 2
Verdict: RUNTIME ERROR
input |
---|
10000 R*****************************... |
correct output |
---|
9999 9999 |
user output |
---|
(empty) |
Error:
thread 'main' panicked at 'index out of bounds: the len is 9999 but the index is 18446744073709551615', input/code.rs:21:32 note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
Test 16
Group: 2
Verdict: RUNTIME ERROR
input |
---|
10000 ******************************... |
correct output |
---|
9999 9999 |
user output |
---|
(empty) |
Error:
thread 'main' panicked at 'index out of bounds: the len is 9999 but the index is 9999', input/code.rs:22:21 note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
Test 17
Group: 2
Verdict: RUNTIME ERROR
input |
---|
200000 ................................. |
correct output |
---|
0 0 |
user output |
---|
(empty) |
Error:
thread 'main' panicked at 'index out of bounds: the len is 0 but the index is 18446744073709551615', input/code.rs:21:32 note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
Test 18
Group: 2
Verdict: ACCEPTED
input |
---|
200000 ................................. |
correct output |
---|
299934 10000 |
user output |
---|
299934 10000 |
Test 19
Group: 2
Verdict: TIME LIMIT EXCEEDED
input |
---|
200000 **.***....**..**.....***.*..*.... |
correct output |
---|
299998 100000 |
user output |
---|
(empty) |
Test 20
Group: 2
Verdict: ACCEPTED
input |
---|
200000 ******************************... |
correct output |
---|
0 0 |
user output |
---|
0 0 |
Test 21
Group: 2
Verdict: RUNTIME ERROR
input |
---|
200000 R................................ |
correct output |
---|
133765 3 |
user output |
---|
(empty) |
Error:
thread 'main' panicked at 'index out of bounds: the len is 3 but the index is 18446744073709551615', input/code.rs:21:32 note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
Test 22
Group: 2
Verdict: RUNTIME ERROR
input |
---|
200000 R................................ |
correct output |
---|
199982 5000 |
user output |
---|
(empty) |
Error:
thread 'main' panicked at 'index out of bounds: the len is 5000 but the index is 18446744073709551615', input/code.rs:21:32 note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
Test 23
Group: 2
Verdict: RUNTIME ERROR
input |
---|
200000 R*****************************... |
correct output |
---|
199999 199999 |
user output |
---|
(empty) |
Error:
thread 'main' panicked at 'index out of bounds: the len is 199999 but the index is 18446744073709551615', input/code.rs:21:32 note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
Test 24
Group: 2
Verdict: RUNTIME ERROR
input |
---|
200000 ******************************... |
correct output |
---|
199999 199999 |
user output |
---|
(empty) |
Error:
thread 'main' panicked at 'index out of bounds: the len is 199999 but the index is 199999', input/code.rs:22:21 note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace