Submission #30764819
Source Code Expand
use proconio::{input, marker::Usize1};
fn main() {
input! {
n: usize,
q: usize,
};
// 0 AB
// CD
// 1 CA
// DB
// 2 DC
// BA
// 3 BD
// AC
// 4 CD
// AB
// 5 DB
// CA
// 6 BA
// DC
// 7 AC
// BD
let mut dir = 0;
let mut color = vec![vec![0; n]; n];
let m = n - 1;
let f = |r: usize, c: usize, dir: usize| {
let rc = m - c;
let rr = m - r;
match dir {
0 => (r, c),
1 => (rc, r),
2 => (rr, rc),
3 => (c, rr),
4 => (rr, c),
5 => (rc, rr),
6 => (r, rc),
7 => (c, r),
_ => unreachable!(),
}
};
for _ in 0..q {
input! { t: usize }
match t {
1 => {
input! {
x: Usize1,
y: Usize1,
}
let (i, j) = f(x, y, dir);
color[i][j] = (color[i][j] + 1) % 2;
}
2 => {
input! { c: char }
match c {
'A' => match dir {
0 | 1 | 2 | 3 => dir = (dir + 1) % 4,
4 | 5 | 6 | 7 => dir = (dir - 4 + 4 - 1) % 4 + 4,
_ => unreachable!(),
},
'B' => match dir {
0 | 1 | 2 | 3 => dir = (dir + 4 - 1) % 4,
4 | 5 | 6 | 7 => dir = (dir - 4 + 1) % 4 + 4,
_ => unreachable!(),
},
_ => unreachable!(),
}
}
3 => {
input! { c: char }
match c {
'A' => match dir {
0 | 1 | 2 | 3 => dir += 4,
4 | 5 | 6 | 7 => dir -= 4,
_ => unreachable!(),
},
'B' => match dir {
0 => dir = 6,
1 => dir = 7,
2 => dir = 4,
3 => dir = 5,
4 => dir = 2,
5 => dir = 3,
6 => dir = 0,
7 => dir = 1,
_ => unreachable!(),
},
_ => unreachable!(),
}
}
_ => unreachable!(),
}
}
for x in 0..n {
for y in 0..n {
let (i, j) = f(x, y, dir);
print!("{}", color[i][j]);
}
println!();
}
}
Submission Info
| Submission Time |
|
| Task |
J - Rotate and Reverse |
| User |
bouzuya |
| Language |
Rust (1.42.0) |
| Score |
6 |
| Code Size |
2675 Byte |
| Status |
AC |
| Exec Time |
42 ms |
| Memory |
3656 KiB |
Judge Result
| Set Name |
Sample |
All |
| Score / Max Score |
0 / 0 |
6 / 6 |
| Status |
|
|
| Set Name |
Test Cases |
| Sample |
sample_00.txt, sample_01.txt, sample_02.txt |
| All |
case_00.txt, case_01.txt, case_02.txt, case_03.txt, case_04.txt, case_05.txt, case_06.txt, case_07.txt, case_08.txt, case_09.txt, case_10.txt, case_11.txt, case_12.txt, case_13.txt, case_14.txt, case_15.txt, case_16.txt, case_17.txt, case_18.txt, case_19.txt, sample_00.txt, sample_01.txt, sample_02.txt |
| Case Name |
Status |
Exec Time |
Memory |
| case_00.txt |
AC |
42 ms |
3532 KiB |
| case_01.txt |
AC |
36 ms |
3552 KiB |
| case_02.txt |
AC |
36 ms |
3516 KiB |
| case_03.txt |
AC |
35 ms |
3600 KiB |
| case_04.txt |
AC |
41 ms |
3656 KiB |
| case_05.txt |
AC |
38 ms |
3448 KiB |
| case_06.txt |
AC |
35 ms |
3484 KiB |
| case_07.txt |
AC |
37 ms |
3420 KiB |
| case_08.txt |
AC |
36 ms |
3592 KiB |
| case_09.txt |
AC |
37 ms |
3456 KiB |
| case_10.txt |
AC |
17 ms |
2384 KiB |
| case_11.txt |
AC |
20 ms |
2572 KiB |
| case_12.txt |
AC |
25 ms |
2956 KiB |
| case_13.txt |
AC |
22 ms |
3096 KiB |
| case_14.txt |
AC |
14 ms |
2504 KiB |
| case_15.txt |
AC |
20 ms |
2640 KiB |
| case_16.txt |
AC |
30 ms |
2784 KiB |
| case_17.txt |
AC |
27 ms |
3128 KiB |
| case_18.txt |
AC |
21 ms |
2912 KiB |
| case_19.txt |
AC |
30 ms |
2880 KiB |
| sample_00.txt |
AC |
3 ms |
2140 KiB |
| sample_01.txt |
AC |
2 ms |
2168 KiB |
| sample_02.txt |
AC |
1 ms |
1996 KiB |