# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
445213 | 2021-07-16T22:14:14 Z | flappybird | 길고양이 (JOI20_stray) | C++14 | 0 ms | 0 KB |
#include "Catherine.h" #include <bits/stdc++.h> using namespace std; typedef int ll; namespace { int A, B; int variable_example = 0; ll pv; ll str; ll last; string up[6], down[6]; bool chk(string s) { for (ll i = 0; i < 6; i++) { if (s == up[i]) return true; } return false; } string s; } // namespace void Init(int A, int B) { ::A = A; ::B = B; pv = -1; str = 0; last = 0; up[0] = "00101"; up[1] = "01011"; up[2] = "10110"; up[3] = "01100"; up[4] = "11001"; up[5] = "10010"; } int Move(std::vector<int> y) { if (pv != -1) { if ((y[0] + y[1] + 1) != 2) { str = 0; s.clear(); last = 1; y[pv]++; if (y[0] == 1) { if (pv == 0) return -1; else return pv = 0; } else { if (pv == 1) return -1; else return pv = 1; } } else { if (!last) { str++; ll nxt; if (y[0]) nxt = 0; else nxt = 1; s.push_back(nxt + 48); if (str == 5) { if (chk(s)) { last = 1; str = 0; s.clear(); return pv = nxt; } else { last = 1; str = 0; s.clear(); return -1; } } else { return pv = nxt; } } else { if (y[0]) return pv = 0; else return pv = 1; } } } else { if ((y[0] + y[1]) != 2) { last = 1; if (y[0] == 1) return pv = 0; else return pv = 1; } else { if (y[0] == 2) { s.push_back('0'); s.push_back('0'); str += 2; return pv = 0; } else if (y[1] == 2) { s.push_back('1'); s.push_back('1'); str += 2; return pv = 1; } else { s.push_back('0'); s.push_back('1'); str += 2; return pv = 1; } } } }