Submission #493027

#TimeUsernameProblemLanguageResultExecution timeMemory
493027DDDNNNCombo (IOI18_combo)C++14
30 / 100
51 ms568 KiB
#include<bits/stdc++.h>
#include "combo.h"
using namespace std;
#define forinc(i,a,b) for(int i=a;i<=b;i++)

#define fast  ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
int rnd(int l,int r)
{
    return l+rng()%(r-l+1);
}
string d[]={"A","B","X","Y"};
bool dd[5];
string s="";
//int press(string s){};
string guess_sequence(int n)
{
    int fi=4;
    int cnt=0;
    int num=0;
    int r=press("AB");
    //cout<<"AB";
    //int r;cin>>r;
    if(r>0)
    {
        r=press("A");
        //cout<<"A";cin>>r;
        if(r>0)
        {
            s+="A";fi=0;
        }
        else s+="B",fi=1;
    }
    else
    {
        r=press("X");
        //cout<<"X";cin>>r;
        if(r>0) s+="X",fi=2;
        else s+="Y",fi=3;
    }
    forinc(i,1,n-1)
    {
        memset(dd,0,sizeof dd);
        dd[fi]=1;
        int dem=0;
        int oyr=cnt;
        while(dd[0]==0||dd[1]==0||dd[2]==0||dd[3]==0)
        {
            int x=rnd(0,3);
            if(x==fi) continue;
            if(dd[x]==1) continue;
            dd[x]=1;
            dem++;
            if(dem==3)
            {
                s+=d[x];
                //cnt=cnt+1;
                break;
            }
            int ret=press(s+d[x]);
            //cout<<s+d[x]<<"\n";
            //int ret; cin>>ret;
            if(ret==i) continue;
            s+=d[x];
            //cnt=ret;
            break;
        }

        //cout<<fi<<"\n";;

    }
    return s;
}

Compilation message (stderr)

combo.cpp: In function 'std::string guess_sequence(int)':
combo.cpp:46:13: warning: unused variable 'oyr' [-Wunused-variable]
   46 |         int oyr=cnt;
      |             ^~~
combo.cpp:20:9: warning: unused variable 'num' [-Wunused-variable]
   20 |     int num=0;
      |         ^~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...