Submission #571136

#TimeUsernameProblemLanguageResultExecution timeMemory
571136sentheta콤보 (IOI18_combo)C++17
5 / 100
2 ms256 KiB
#include "combo.h" #include<bits/stdc++.h> using namespace std; #define V vector #define rep(i,a,b) for(int i=(a); i<(b); i++) int n; string s; #define sz (int)s.size() V<char> arr = {'A','B','X','Y'}; int f(char c){ int i = 0; while(arr[i] != c) i++; return i; } string guess_sequence(int _n){ n = _n; // find first char { int ax = press("AX"), bx = press("BX"); if(ax && bx) s = "X"; else if(ax) s = "A"; else if(bx) s = "B"; else s = "Y"; } // put s[0] as last char swap(arr[f(s[0])], arr.back()); //cout << s << endl; while(sz < n-1){ string t = ""; t += s; t += arr[0]; t += arr[0]; t += s; t += arr[0]; t += arr[1]; t += s; t += arr[0]; t += arr[2]; t += s; t += arr[1]; //cout << t << endl; int len = press(t); if(len==sz) s += arr[2]; else if(len==sz+1) s += arr[1]; else s += arr[0]; } //assert(sz == n-1); //cout << s << endl; // last char string t; t += s; t += arr[0]; t += s; t += arr[1]; if(press(t) > sz){ t = ""; t += s; t += arr[0]; if(press(t) > sz) s += arr[0]; else s += arr[1]; } else s += arr[2]; //cout << s << endl; return s; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...