| # | Time | Username | Problem | Language | Result | Execution time | Memory |
|---|---|---|---|---|---|---|---|
| 1284670 | Rares | Combo (IOI18_combo) | C++20 | 9 ms | 480 KiB |
#include "combo.h"
#include <bits/stdc++.h>
using namespace std;
string rez;
/**int press (string p){
cout <<p<<'\n';
int rez;
cin >>rez;
return rez;
}*/
bool ok[4];
char f (int x){
if (x==0) return 'A';
if (x==1) return 'B';
if (x==2) return 'X';
if (x==3) return 'Y';
}
string guess_sequence(int n){
int x=press ("AB");
if (x){
int y=press ("A");
if (y) ok[0]=1;
else ok[1]=1;
}
else{
int y=press ("X");
if (y) ok[2]=1;
else ok[3]=1;
}
for (int i=0;i<4;++i){
if (ok[i]){
rez.push_back(f (i));
}
}
for (int i=1;i<n;++i){
if (i==n-1){
int crt=0;
for (int j=0;j<4;++j){
if (ok[j]==0){
if (crt==2){
return rez+f (j);
}
int x=press (rez+f (j));
crt++;
if (x==n){
return rez+f (j);
}
}
}
}
else{
int crt=0,l1=-1,l2=-1,l3=-1;
string s;
for (int j=0;j<4;++j){
if (ok[j]==0){
if (crt==0){
l1=j;
s.append (rez);
s.push_back (f (j));
crt++;
}
else{
if (crt==2){
l3=j;
break;
}
l2=j;
for (int k=0;k<4;++k){
if (ok[k]==0){
s.append (rez);
s.push_back (f (j));
s.push_back (f (k));
}
}
crt++;
}
}
}
int x=press (s);
if (x==i){
rez.push_back (f (l3));
}
else{
if (x==i+1){
rez.push_back (f (l1));
}
else{
rez.push_back (f (l2));
}
}
}
}
return rez;
}
Compilation message (stderr)
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
