| Task: | Robotti |
| Sender: | vulpesomnia |
| Submission time: | 2026-01-17 13:35:42 +0200 |
| Language: | Rust (2021) |
| Status: | READY |
| Result: | 100 |
| group | verdict | score |
|---|---|---|
| #1 | ACCEPTED | 100 |
| test | verdict | time | |
|---|---|---|---|
| #1 | ACCEPTED | 0.00 s | details |
| #2 | ACCEPTED | 0.00 s | details |
| #3 | ACCEPTED | 0.00 s | details |
| #4 | ACCEPTED | 0.00 s | details |
| #5 | ACCEPTED | 0.00 s | details |
| #6 | ACCEPTED | 0.01 s | details |
Code
use std::io;
fn main() {
let mut input: String = String::new();
io::stdin().read_line(&mut input).expect("gg");
let n: usize = input.trim().parse().unwrap();
let mut map: Vec<Vec<usize>> = vec![vec![0; n]; n];
for i in 0..n {
let mut input: String = String::new();
io::stdin().read_line(&mut input).expect("gg");
for (j, c) in input.chars().enumerate() {
if c == '/' {
map[j][i] = 1;
} else if c == '\\' {
map[j][i] = 2;
}
}
}
let mut steps: usize = 0;
let mut coords: (i32, i32) = (0, 0);
let mut dir: (i32, i32) = (0, 1);
loop {
steps += 1;
if map[coords.0 as usize][coords.1 as usize] == 1 {
if dir.0 == 1 {
dir.0 = 0;
dir.1 = -1;
} else if dir.0 == -1 {
dir.0 = 0;
dir.1 = 1;
} else if dir.1 == 1 {
dir.1 = 0;
dir.0 = -1;
} else if dir.1 == -1 {
dir.1 = 0;
dir.0 = 1;
}
map[coords.0 as usize][coords.1 as usize] = 2;
} else if map[coords.0 as usize][coords.1 as usize] == 2 {
if dir.0 == 1 {
dir.0 = 0;
dir.1 = 1;
} else if dir.0 == -1 {
dir.0 = 0;
dir.1 = -1;
} else if dir.1 == 1 {
dir.1 = 0;
dir.0 = 1;
} else if dir.1 == -1 {
dir.1 = 0;
dir.0 = -1;
}
map[coords.0 as usize][coords.1 as usize] = 1;
}
coords.1 += dir.1;
coords.0 += dir.0;
if (coords.0 > n as i32 - 1 || coords.0 < 0) || (coords.1 > n as i32 - 1 || coords.1 < 0) {
break;
}
}
println!("{}", steps);
}
Test details
Test 1 (public)
Verdict: ACCEPTED
| input |
|---|
| 3 ./\ \./ \/. |
| correct output |
|---|
| 13 |
| user output |
|---|
| 13 |
Test 2
Verdict: ACCEPTED
| input |
|---|
| 1 . |
| correct output |
|---|
| 1 |
| user output |
|---|
| 1 |
Test 3
Verdict: ACCEPTED
| input |
|---|
| 5 ./\/\ ..... ..... ..... ... |
| correct output |
|---|
| 25 |
| user output |
|---|
| 25 |
Test 4
Verdict: ACCEPTED
| input |
|---|
| 5 \\/\\ /\/\/ \\/\\ /\/\/ ... |
| correct output |
|---|
| 37 |
| user output |
|---|
| 37 |
Test 5
Verdict: ACCEPTED
| input |
|---|
| 20 \\/\/\/\\./\\.\/\/\. /\\\\\\/\\\\\\\\\\\. \\\\\\\\\\\\\\\\\\\\ /\\\\\\\\\\\\\.\\\\\ ... |
| correct output |
|---|
| 2519 |
| user output |
|---|
| 2519 |
Test 6
Verdict: ACCEPTED
| input |
|---|
| 20 \\.................. .\\..............\\. ..\\............\\.. ...\\..........\\... ... |
| correct output |
|---|
| 917489 |
| user output |
|---|
| 917489 |
