Submission #1073548

#TimeUsernameProblemLanguageResultExecution timeMemory
1073548OspleiMini tetris (IOI16_tetris)C++17
25 / 100
3 ms600 KiB
#include "tetris.h" #include <bits/stdc++.h> using namespace std; typedef pair<int,int> ii; typedef long long ll; typedef vector<int> vi; typedef vector<vi> vvi; typedef vector<ii> vii; typedef vector<vii> wgraf; typedef pair<int,ii> edge; typedef vector <ll> vl; typedef pair <ll, ll> LL; typedef vector <LL> vll; #define UNVISITED 0 #define VISITED 1 #define pb push_back #define F first #define S second bool libre[3], libre2[3]; void init(int n) { libre[0] = true; libre[1] = true; libre[2] = true; libre2[0] = true; libre2[1] = true; libre2[2] = true; } ll pos = 0, rot = 0, cnt = 0; void new_figure(int figure_type) { cnt = 0; for (ll i = 0; i < 3; i++) if (libre[i] == true) cnt++; if (figure_type == 1){ pos = 0; rot = 0; } else if (figure_type == 2){ if (cnt >= 2) { if (libre[0] == true) pos = 0; else pos = 1; rot = 0; if (cnt == 2) { libre[0] = libre2[0]; libre[1] = libre2[1]; libre[2] = libre2[2]; libre2[0] = true; libre2[1] = true; libre2[2] = true; } else { libre[pos] = false; libre[pos + 1] = false; } } else { if (libre[0] == true) pos = 0; else pos = 2; rot = 1; libre[0] = libre2[0]; libre[1] = libre2[1]; libre[2] = libre2[2]; libre[pos] = false; } } else { if (cnt == 3){ libre[0] = false; pos = 0; rot = 0; } else if (cnt == 2){ libre[2] = false; pos = 1; rot = 1; } else { if (libre[2] == true) { pos = 1; rot = 2; libre[1] = false; libre[2] = false; } else { pos = 0; rot = 3; libre[0] = false; libre[1] = false; } } } } int get_position() { return pos; } int get_rotation() { return rot; }
#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...