제출 #596134

#제출 시각아이디문제언어결과실행 시간메모리
596134jophyyjhMini tetris (IOI16_tetris)C++14
100 / 100
3 ms308 KiB
/** * 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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...