이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "combo.h"
#include <iostream>
#include <string>
#include <vector>
using namespace std;
/*
int press(string S)
{
cout << S << '\n';
int res;
cin >> res;
return res;
}*/
string guess_sequence(int N)
{
string res;
if(press("AB") >= 1)
{
res = (press("A") == 1 ? "A" : "B");
}
else
{
res = (press("X") == 1 ? "X" : "Y");
}
// cout << "res = " << res << '\n';
int pos;
string query;
int query_res;
vector<string> C;
for(string t: {"A", "B", "X", "Y"}) if(t != res) C.push_back(t);
for(pos = 1; pos < N-1; pos++)
{
query.clear();
query += res + C[0];
query += res + C[1] + C[0];
query += res + C[1] + C[1];
query += res + C[1] + C[2];
//cout << pos << ' ';
query_res = press(query);
if(query_res == pos)
{
res += C[2];
// cout << "adding " << C[2] << '\n';
}
else if(query_res == pos + 1)
{
res += C[0];
// cout << "adding " << C[0] << '\n';
}
else
{
res += C[1];
// cout << "adding " << C[1] << '\n';
}
// cout << "res = " << res << '\n';
}
if(press(res + C[0] + res + C[1]) == pos)
{
res += C[2];
pos++;
}
else
{
if(press(res + C[0]) == pos + 1)
{
res += C[0];
pos++;
}
else
{
res += C[1];
pos++;
}
}
return res;
}
/*
int main()
{
int N;
cin >> N;
string S;
cin >> S;
cout << guess_sequence(N) << '\n';
}*/
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |