제출 #670697

#제출 시각아이디문제언어결과실행 시간메모리
670697Essa2006콤보 (IOI18_combo)C++14
30 / 100
42 ms564 KiB
#include<bits/stdc++.h> using namespace std; #define ll long long #define endl '\n' #define FF first #define SS second #define all(a) a.begin(), a.end() #define mod (ll)(1000000007) //string s="XYYAA"; string ans=""; int press(string p); //int press(string p){ // int m=p.size(); // int mx=0, cur=0; // for(int i=0;i<m;i++){ // if(cur<s.size() && p[i]==s[cur]) // cur++, mx=max(mx, cur); // else // cur=0; // } // return mx; //} string guess_sequence(int n){ string a="ABXY"; char c; if(press("AB")){ if(press("A")) ans.push_back('A'), c='A'; else ans.push_back('B'), c='B'; } else{ if(press("X")) ans.push_back('X'), c='X'; else ans.push_back('Y'), c='Y'; } string b=a; a=""; for(int i=0;i<4;i++){ if(b[i]!=c) a.push_back(b[i]); } c=a[0]; bool include_it=0, h=1; for(int i=1;i<n;i++){ if(h){ for(int j=0;j<3;j++){ string k=ans+a[j]+c; int pr=press(k); if(pr>=i+1){ ans.push_back(a[j]); if(pr==i+1) include_it=0; else include_it=1; h=0; break; } } } else{ if(include_it){ ans.push_back(c); h=1; } else{ string k=ans+a[1]+c; int pr=press(k); if(pr>=i+1){ ans.push_back(a[1]); if(pr==i+1) include_it=0; else include_it=1; } else{ ans.push_back(a[2]); h=1; } } } } return ans; } //int main(){ // ios_base::sync_with_stdio(0);cin.tie(0); // int n=s.size(); // cout<<guess_sequence(n); // //}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...