/**
* Clearly, type1 stuff can be handled effortlessly. For type 2 and 3, we can just
* draw out a graph of configurations and consider the relationship among them. It
* suffices to hard-code everything. Well, the coding process is indeed a bit
* tedious.
*
* Implementation 1
*/
#include <bits/stdc++.h>
#include "tetris.h"
void init(int n) {
// well i don't have to do anything.
}
int position;
int rotation;
int state = 0; // the state in our "configuration graph"
bool symmetry = false;
void new_figure(int figure_type) {
if (figure_type == 1) {
position = 0, rotation = 0;
return;
}
switch (state) {
case 1:
if (figure_type == 3)
position = 1, rotation = 2, state = 0;
else
position = 1, rotation = 0, state = 2, symmetry = false;
break;
case 0:
if (figure_type == 3)
position = 0, rotation = 0, state = 1;
else
position = 0, rotation = 0, state = 2, symmetry = false;
break;
case 2:
if (figure_type == 3) {
if (symmetry)
position = 0, rotation = 3, state = 2, symmetry = false;
else
position = 1, rotation = 2, state = 2, symmetry = true;
} else {
position = (symmetry ? 0 : 2), rotation = 1, state = 3;
}
break;
case 3:
if (figure_type == 3) {
if (symmetry)
position = 1, rotation = 1, symmetry ^= 1;
else
position = 0, rotation = 0, symmetry ^= 1;
} else {
position = (symmetry ? 1 : 0), rotation = 0, state = 0;
}
break;
}
}
int get_position() {
return position;
}
int get_rotation() {
return rotation;
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
0 ms |
212 KB |
Win! |
2 |
Correct |
1 ms |
212 KB |
Win! |
3 |
Correct |
1 ms |
212 KB |
Win! |
4 |
Correct |
1 ms |
212 KB |
Win! |
5 |
Correct |
1 ms |
212 KB |
Win! |
6 |
Correct |
1 ms |
304 KB |
Win! |
7 |
Correct |
2 ms |
212 KB |
Win! |
8 |
Correct |
2 ms |
212 KB |
Win! |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
212 KB |
Win! |
2 |
Correct |
1 ms |
212 KB |
Win! |
3 |
Correct |
1 ms |
212 KB |
Win! |
4 |
Correct |
1 ms |
304 KB |
Win! |
5 |
Correct |
1 ms |
212 KB |
Win! |
6 |
Correct |
1 ms |
212 KB |
Win! |
7 |
Correct |
2 ms |
212 KB |
Win! |
8 |
Correct |
2 ms |
212 KB |
Win! |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
0 ms |
212 KB |
Win! |
2 |
Correct |
1 ms |
212 KB |
Win! |
3 |
Correct |
1 ms |
212 KB |
Win! |
4 |
Correct |
1 ms |
212 KB |
Win! |
5 |
Correct |
1 ms |
212 KB |
Win! |
6 |
Correct |
1 ms |
304 KB |
Win! |
7 |
Correct |
2 ms |
212 KB |
Win! |
8 |
Correct |
2 ms |
212 KB |
Win! |
9 |
Correct |
1 ms |
212 KB |
Win! |
10 |
Correct |
1 ms |
212 KB |
Win! |
11 |
Correct |
1 ms |
212 KB |
Win! |
12 |
Correct |
1 ms |
304 KB |
Win! |
13 |
Correct |
1 ms |
212 KB |
Win! |
14 |
Correct |
1 ms |
212 KB |
Win! |
15 |
Correct |
2 ms |
212 KB |
Win! |
16 |
Correct |
2 ms |
212 KB |
Win! |
17 |
Correct |
1 ms |
212 KB |
Win! |
18 |
Correct |
0 ms |
300 KB |
Win! |
19 |
Correct |
1 ms |
212 KB |
Win! |
20 |
Correct |
1 ms |
212 KB |
Win! |
21 |
Correct |
1 ms |
212 KB |
Win! |
22 |
Correct |
1 ms |
212 KB |
Win! |
23 |
Correct |
1 ms |
212 KB |
Win! |
24 |
Correct |
2 ms |
212 KB |
Win! |
25 |
Correct |
2 ms |
212 KB |
Win! |
26 |
Correct |
2 ms |
212 KB |
Win! |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
212 KB |
Win! |
2 |
Correct |
0 ms |
212 KB |
Win! |
3 |
Correct |
0 ms |
212 KB |
Win! |
4 |
Correct |
1 ms |
212 KB |
Win! |
5 |
Correct |
1 ms |
212 KB |
Win! |
6 |
Correct |
1 ms |
212 KB |
Win! |
7 |
Correct |
1 ms |
212 KB |
Win! |
8 |
Correct |
2 ms |
212 KB |
Win! |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
0 ms |
212 KB |
Win! |
2 |
Correct |
1 ms |
212 KB |
Win! |
3 |
Correct |
1 ms |
212 KB |
Win! |
4 |
Correct |
1 ms |
212 KB |
Win! |
5 |
Correct |
1 ms |
212 KB |
Win! |
6 |
Correct |
1 ms |
304 KB |
Win! |
7 |
Correct |
2 ms |
212 KB |
Win! |
8 |
Correct |
2 ms |
212 KB |
Win! |
9 |
Correct |
1 ms |
212 KB |
Win! |
10 |
Correct |
1 ms |
212 KB |
Win! |
11 |
Correct |
1 ms |
212 KB |
Win! |
12 |
Correct |
1 ms |
304 KB |
Win! |
13 |
Correct |
1 ms |
212 KB |
Win! |
14 |
Correct |
1 ms |
212 KB |
Win! |
15 |
Correct |
2 ms |
212 KB |
Win! |
16 |
Correct |
2 ms |
212 KB |
Win! |
17 |
Correct |
1 ms |
212 KB |
Win! |
18 |
Correct |
0 ms |
300 KB |
Win! |
19 |
Correct |
1 ms |
212 KB |
Win! |
20 |
Correct |
1 ms |
212 KB |
Win! |
21 |
Correct |
1 ms |
212 KB |
Win! |
22 |
Correct |
1 ms |
212 KB |
Win! |
23 |
Correct |
1 ms |
212 KB |
Win! |
24 |
Correct |
2 ms |
212 KB |
Win! |
25 |
Correct |
2 ms |
212 KB |
Win! |
26 |
Correct |
2 ms |
212 KB |
Win! |
27 |
Correct |
1 ms |
212 KB |
Win! |
28 |
Correct |
0 ms |
212 KB |
Win! |
29 |
Correct |
0 ms |
212 KB |
Win! |
30 |
Correct |
1 ms |
212 KB |
Win! |
31 |
Correct |
1 ms |
212 KB |
Win! |
32 |
Correct |
1 ms |
212 KB |
Win! |
33 |
Correct |
1 ms |
212 KB |
Win! |
34 |
Correct |
2 ms |
212 KB |
Win! |
35 |
Correct |
0 ms |
212 KB |
Win! |
36 |
Correct |
1 ms |
308 KB |
Win! |
37 |
Correct |
1 ms |
212 KB |
Win! |
38 |
Correct |
1 ms |
212 KB |
Win! |
39 |
Correct |
1 ms |
212 KB |
Win! |
40 |
Correct |
1 ms |
308 KB |
Win! |
41 |
Correct |
1 ms |
212 KB |
Win! |
42 |
Correct |
2 ms |
212 KB |
Win! |
43 |
Correct |
2 ms |
212 KB |
Win! |
44 |
Correct |
2 ms |
212 KB |
Win! |
45 |
Correct |
3 ms |
212 KB |
Win! |