Submission #596134

# Submission time Handle Problem Language Result Execution time Memory
596134 2022-07-14T12:07:35 Z jophyyjh Mini tetris (IOI16_tetris) C++14
100 / 100
3 ms 308 KB
/**
 * 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;
}

# Verdict Execution time Memory 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!
# Verdict Execution time Memory 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!
# Verdict Execution time Memory 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!
# Verdict Execution time Memory 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!
# Verdict Execution time Memory 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!