제출 #737840

#제출 시각아이디문제언어결과실행 시간메모리
737840nicolaev콤보 (IOI18_combo)C++14
30 / 100
46 ms588 KiB
#include <bits/stdc++.h> using namespace std; #define mod 1000000007 #define ll long long #define all(v) v.begin(), v.end() #define fr(n) for(ll i=0;i<n;++i) #define ctz(x) __builtin_ctzll(x) #define clz(x) __builtin_clzll(x) #define pcount(x) __builtin_popcountll(x) const int dx[] = {-1, 0, 1, 0}; const int dy[] = {0, 1, 0, -1}; // #define cin fin // #define cout fout // ifstream fin // ofstream fout //const ll maxn = 3e5 + 5; //int f[maxn],nf[maxn],inv[maxn]; //const int M=998244353; //void init(){ //inv[1]=1; for (int i=2;i<maxn;i++) inv[i]=M-1ll*(M/i)*inv[M%i]%M; //f[0]=nf[0]=1; for (int i=1;i<maxn;i++) f[i]=1ll*f[i-1]*i%M,nf[i]=1ll*nf[i-1]*inv[i]%M; //} //int C(int x,int y){return 1ll*f[x]*nf[y]%M*nf[x-y]%M;} int press(string p); string guess_sequence(int n){ string fs=""; // vector<string> v; // v.push_back("A"); // v.push_back("B"); // v.push_back("X"); // v.push_back("Y"); // for(int i=0; i<4; i++){ // int temp=press(v[i]); // if(temp){ // fs+=v[i]; // v.erase(v.begin()+i); // break; // } // } string first; int temp=press("AB"); if(temp){ int temp2=press("A"); if(temp2) first="A"; else first="B"; } else{ int temp2=press("X"); if(temp2) first="X"; else first="Y"; } // for(ll i=0; i<4; i++){ // if(v[i]==first){ // v.erase(v.begin()+i); // } // } ll cnt=2; for(int i=0;i<n-1; i++){ string s1=first+fs+"A"+first+fs+"B"; temp=press(s1); if(temp==cnt){ s1=first+fs+"A"; temp=press(s1); if(temp==cnt){ fs+="A"; } else{ fs+="B"; } } else{ s1=first+fs+"X"; temp=press(s1); if(temp==cnt){ fs+="X"; } else{ fs+="Y"; } } cnt++; } return first+fs; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...