Submission #1296443

#TimeUsernameProblemLanguageResultExecution timeMemory
1296443Ekber_Ekber콤보 (IOI18_combo)C++20
100 / 100
8 ms480 KiB
#include "combo.h" #include <bits/stdc++.h> // #define int long long #define endl "\n" #define ff first #define ss second #define pb push_back #define all(v) v.begin(), v.end() using namespace std; vector <string> v = {"A", "B", "X", "Y"}; string guess_sequence(int n) { int first = -1; string p = ""; // for(int i = 0; i < v.size() - 1; i++){ // if(press(v[i]) > 0){ // p += v[i]; // first = i; // break; // } // } if (press("AB") > 0) { if (press("A") > 0) { first = 0; p += 'A'; } else { first = 1; p += 'B'; } } else{ if (press("X") > 0) { first = 2; p += 'X'; } else { first = 3; p += 'Y'; } } if(p.size() == 0)p += v.back(), first = 3; if(p.size() == n)return p; vector < string > vv; for(int i = 0; i < 4; i++){ if(i != first) vv.push_back(v[i]); } v = vv; while(p.size() < n - 1){ string cur = ""; cur += p; cur += v[0]; cur += p; cur += v[1]; cur += v[0]; cur += p; cur += v[1]; cur += v[2]; cur += p; cur += v[1]; cur += v[1]; // cout << cur << endl; int sz = press(cur); if(sz == p.size()){ p += v[2]; } else if(sz == p.size() + 1){ p += v[0]; } else { p += v[1]; } } for(int i = 0; i < 2; i++){ string cur = p + v[i]; if(press(cur) == n){ return cur; } } string ans = p + v.back(); // cout << ans << endl; return ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...