50204. Rubik's Cube

難度:3.8/5 Used Time: 11:40

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#include <stdio.h>
#include <stdlib.h>
#include <limits.h>

int n, m;
int arr[100][100][100];
int temp[100][100];

void rotate_0(int k){
for(int i = 0; i < n; i++){
for(int j = 0; j < n; j++){
temp[j][n - i - 1] = arr[k][i][j];
}
}
for(int i = 0; i < n; i++){
for(int j = 0; j < n; j++){
arr[k][i][j] = temp[i][j];
}
}
}
void rotate_1(int k){
for(int i = 0; i < n; i++){
for(int j = 0; j < n; j++){
temp[j][n - i - 1] = arr[i][j][k];
}
}
for(int i = 0; i < n; i++){
for(int j = 0; j < n; j++){
arr[i][j][k] = temp[i][j];
}
}
}

int main(){
scanf("%d %d", &n, &m);
for(int i = 0; i < n; i++){
for(int j = 0; j < n; j++){
for(int k = 0; k < n; k++){
arr[i][j][k] = i * (n * n) + j * n + k;
}
}
}

for(int tt = 0; tt < m; tt++){
int t, k; scanf("%d %d", &t, &k);
if(t == 0){
rotate_0(k);
}
else if(t == 1){
rotate_1(k);
}
}

int cnt = 0;
for(int i = 0; i < n; i++){
for(int j = 0; j < n; j++){
for(int k = 0; k < n; k++){
printf("%d", arr[i][j][k]);
cnt++;
if(cnt != n){
printf(" ");
}
else{
cnt = 0;
printf("\n");
}
}
}
}
}


50204. Rubik's Cube
https://aaronlin1229.github.io/judgegirl_50204/
Author
Akizumi
Posted on
July 17, 2023
Licensed under