This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
#include "combo.h"
// #pragma GCC optimize("Ofast")
// #pragma GCC target("avx2")
// #pragma GCC optimization ("O3")
// #pragma GCC optimization ("unroll-loops")
// #pragma GCC target("popcnt")
#define endl '\n'
#define mp make_pair
#define pb push_back
#define f first
#define s second
#define fo(i,n) for(auto i =0 ; i < n;i++)
#define fore(i,l,r) for(auto i = l; i < r;i++)
#define forex(i,r,l) for(auto i = r; i >= l; i--)
#define ffo(i,n) forex(i,n-1,0)
#define all(x) x.begin(),x.end()
#define lsb(x) x&(-x)
#define sz(x) (int)x.size()
#define gcd(a,b) __gcd(a,b)
#define vii vector<ii>
#define pq_min(a) priority_queue<a, vector<a>, greater<a>>
#define fls cout.flush()
using namespace std;
using ll = long long;
using ull = unsigned long long;
using vi = vector<int>;
using ii = pair<int,int>;
using mii = map<int,int>;
using lld = long double;
void valid(ll in){cout<<((in)?"YES\n":"NO\n");}
ll lcm(ll a, ll b){return (a/gcd(a,b))*b;}
// press(p)
// int press(string S){
// cout << S << endl;cout.flush();
// int ans; cin >> ans;
// return ans;
// }
string guess_sequence(int N) {
string S="";
if(press("AB")){
if(press("A"))S+="A";
else S+="B";
}else{
if(press("X"))S+="X";
else S+="Y";
}
for(int i = 1;i < N-1; i++){
string ncad;
int c = 0;
vector<char> act;
for(char a : {'A','B','X','Y'}){
if(a==S[0])continue;
act.pb(a);
if(c==0){
ncad += S + a;
}else if(c==1){
for(char e : {'A','B','X','Y'}){
if((char)e==S[0])continue;
ncad+=S+a+e;
}
}
c++;
}
int qq = press(ncad);
if(qq==sz(S)) S+=act.back();
else if(qq==sz(S)+1)S+=act[0];
else S+=act[1];
}
if(N!=1){
vi act;
for(char e : {'A','B','X','Y'}){
if(e==S[0])continue;
act.pb(e);
if(sz(act)>2){
S+=e;
break;
}
string ncad = S + e;
if(press(ncad)==N){
S+=e;
break;
}
}
}
return S;
}
// void test_case(){
// int n;cin >> n;
// string ans = guess_sequence(n);
// cout << ans << endl;
// }
// int main(){cin.tie(0)->sync_with_stdio(0);
// int t=1;
// // cin >> t;
// while(t--)test_case();
// }
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |