제출 #1066599

#제출 시각아이디문제언어결과실행 시간메모리
1066599guanex콤보 (IOI18_combo)C++14
100 / 100
26 ms1616 KiB
#include "combo.h" #include<bits/stdc++.h> using namespace std; typedef pair<int, int> ii; typedef long long ll; typedef vector<ll> vll; typedef pair<long long, long long> pll; typedef pair<char, int> ci; typedef pair<string, int> si; typedef long double ld; typedef vector<int> vi; typedef vector<string> vs; #define pb push_back #define fi first #define se second #define whole(v) v.begin(), v.end() #define rwhole(v) v.rbegin(), v.rend() #define inf INT_MAX/2 #define fro front std::string guess_sequence(int N) { string s; char fi; if(press("AB")){ if(press("A")){ fi = 'A'; }else{ fi = 'B'; } }else{ if(press("X")){ fi = 'X'; }else{ fi = 'Y'; } } char x = 'Y'; if(fi == 'Y'){ x = 'X'; } char y = 'B'; if(fi == 'B'){ y = 'X'; } char z = 'A'; if(fi == 'A'){ z = 'X'; } s.pb(fi); int lc = 1; for(int i = 1; i < N; ++i){ if(lc > i){ continue; } int c; if(i == N-1){ c = press(s + x); if(c > lc){ s.pb(x); }else{ c = press(s + y); if(c > lc){ s.pb(y); }else{ s.pb(z); } } break; } string a[4]; a[0] = s + x; a[1] = s + y + x; a[2] = s + y + y; a[3] = s + y + z; c = press(a[0] + a[1] + a[2] + a[3]); if(c == lc){ s.pb(z); lc++; }else if(lc + 1 == c){ s.pb(x); lc++; }else{ s.pb(y); lc++; } } //cout << s << endl; return s; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...