제출 #1251394

#제출 시각아이디문제언어결과실행 시간메모리
1251394khoavn2008Combo (IOI18_combo)C++20
100 / 100
8 ms484 KiB
#include "combo.h" #include <bits/stdc++.h> using namespace std; #define ll int #define ld double #define endl '\n' #define fi first #define se second #define pb push_back #define REP(i,r) for(ll i=0,_r=(r);i<_r;i++) #define FOR(i,l,r) for(ll i=(l),_r=(r);i<=_r;i++) #define FORE(i,v) for(__typeof((v).begin()) i=(v).begin();i!=(v).end();i++) #define FORNG(i,r,l) for(ll i=(r),_l=(l);i>=_l;i--) #define MASK(i) (1LL<<(i)) #define BIT(x,i) (((x)>>(i))&1LL) #define all(v) (v).begin(),(v).end() #define size(v) ((ll)(v).size()) char ch[] = {'A', 'B', 'X', 'Y'}; string p = ""; // ll press(string s){} char guess_one_char(){ if(press(p + "A" + p + "B") > size(p)){ if(press(p + "A") > size(p))return 'A'; return 'B'; }else{ if(press(p + "X") > size(p))return 'X'; } return 'Y'; } string guess_sequence(int n) { p += guess_one_char(); vector<char> d; for(char x : ch)if(p[0] != x)d.pb(x); FOR(i,2,n - 1){ ll tmp = press(p + d[0] + p + d[1] + d[0] + p + d[1] + d[1] + p + d[1] + d[2]); if(tmp == size(p)){ p += d[2]; } if(tmp == size(p) + 1){ p += d[0]; } if(tmp == size(p) + 2){ p += d[1]; } } if(size(p) != n)p += guess_one_char(); return p; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...