| 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
