이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
/**
* 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 |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |