Submission #925939

#TimeUsernameProblemLanguageResultExecution timeMemory
925939HuyQuang_re_ZeroCombo (IOI18_combo)C++14
100 / 100
13 ms2044 KiB
#include <bits/stdc++.h>
#define ll long long
#define db long double
//#define N 505
#define II pair <ll,ll>
#define III pair <ll,II>
#define IV pair <vector <int>,vector <int> >
#define IDB pair <db,int>
#define TII pair <treap*,treap*>
#define fst first
#define snd second
#define BIT(x,i) ((x>>i)&1)
#define pi acos(-1)
#define to_radian(x) (x*pi/180.0)
#define to_degree(x) (x*180.0/pi)
#define Log(x) (31-__builtin_clz((int)x))
#define LogLL(x) (63-__builtin_clzll((ll)x)
using namespace std;
#include "combo.h"
//#define press(s) IR.cal(s)
struct Interactive
{
    int n;
    string s;
    void Init(int _n)
    {
        n=_n;
        cin>>s;
    }
    int cal(string a)
    {
        for(int i=n;i>=1;i--)
            if(a.find(s.substr(0,i))!=a.npos)
                return i;
        return 0;
    }
} IR;
string guess_sequence(int n)
{
    if(n==1)
    {
        if(press("A")) return "A";
        if(press("B")) return "B";
        if(press("X")) return "X";
        return "Y";
    }
    string s;
    int k=press("BXBY");
    if(k==0) s="A";
    else if(k==1)
    {
        k=press("BAX");
        if(k==0) s="Y";
        else if(k==1) s="X";
        else s="B";
    }
    else s=(press("B") ? "B" : "X");

    string t;
    if(s=="A") t="BXY";
    else if(s=="B") t="XYA";
    else if(s=="X") t="YAB";
    else t="ABX";
    for(int i=2;i<n;i++)
    {
        string now="";
        now+=s; now+=t[0];
        now+=s; now+=t[1]; now+=t[0];
        now+=s; now+=t[1]; now+=t[1];
        now+=s; now+=t[1]; now+=t[2];
        k=press(now);
        if(k==s.size()) s+=t[2];
        else if(k==s.size()+2) s+=t[1];
        else s+=t[0];
    }
    if(press(s+t[0])==n) s+=t[0];
    else if(press(s+t[1])==n) s+=t[1];
    else s+=t[2];
    return s;
}

/*
int main()
{
    freopen("combo.inp","r",stdin);
    freopen("combo.out","w",stdout);
    int n;
    cin>>n;
    IR.Init(n);
    cout<<guess_sequense(n);
}
*/

Compilation message (stderr)

combo.cpp: In function 'std::string guess_sequence(int)':
combo.cpp:72:13: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   72 |         if(k==s.size()) s+=t[2];
      |            ~^~~~~~~~~~
combo.cpp:73:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   73 |         else if(k==s.size()+2) s+=t[1];
      |                 ~^~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...