# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
1071860 | Rigobertus | 콤보 (IOI18_combo) | C++17 | 0 ms | 0 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <iostream>#include <algorithm>#include <vector>#include <map>#include <set>#include <queue>#include <string>//#define int long long#include "combo.h"using namespace std;string guess_sequence(int n) { string c[4] = {"A", "B", "X", "Y"}; string s = ""; set<int> vis; for (int i = 0; i < 4; i++) { vis.insert(i); } int j; for (int i = 0; i < 4; i++) { if (i == 3 || press(c[i])) { s = c[i]; j = i; vis.erase(i); break; } } while (s.size() < n) { int last = *vis.rbegin(); int k; for (int i = 0; i < 4; i++) { k = i; if (!vis.count(i)) { if (i != j) { vis.insert(i); } continue; } if (i == last) { s += c[i]; break; } string p = s + c[i] + c[i]; int x = press(p); if (x == p.size()) { s = p; break; } else if (x == p.size() - 1) { s += c[i]; vis.erase(i); break; } } for (int i = k+1; i<4; i++) vis.insert(i); } return s;}