제출 #759690

#제출 시각아이디문제언어결과실행 시간메모리
759690Trumling콤보 (IOI18_combo)C++14
30 / 100
48 ms652 KiB
#include "combo.h"
#include <bits/stdc++.h>
using namespace std; 

typedef long long ll;
#define pb push_back
#define F first
#define S second
#define enter cout<<'\n';
#define INF 99999999999999999
#define MOD 1000000007
#define all(x) x.begin(),x.end()

string guess_sequence(int N) 
{
  string dic[4]={"A","B","X","Y"};

  ll first=-1;
  string p;
    for(int j=0;j<2*N;j++)
    {
      p+=dic[0][0];
    }

    for(int j=0;j<2*N;j++)
    {
      p+=dic[1][0];
    }

    ll ans=press(p);

    if(ans)
    {
      p="";
      for(int j=0;j<4*N;j++)
      p+=dic[0][0];

      ans=press(p);
      if(ans)
      first=0;
      else
      first=1;
    }
    else
    {
      p="";
      for(int j=0;j<4*N;j++)
      p+=dic[2][0];
      ans=press(p);
      if(ans)
      first=2;
      else
      first=3;
    }
    p="";
    for(int i=0;i<4*N;i++)
    p+=dic[first][0];
    for(int i=1;i<N;i++)
    {
      p[i]=dic[(first+1)%4][0];
      p[i+N]=dic[(first+2)%4][0];
      ans=press(p);

      if(ans!=i+1)
      {
        p[i]=dic[(first+3)%4][0];
        p[i+N]=dic[(first+3)%4][0];
        continue;
      }

      p[i+N]=dic[(first+1)%4][0];
      ans=press(p);
      if(ans!=i+1)
      {
        p[i]=dic[(first+2)%4][0];
        p[i+N]=dic[(first+2)%4][0];
      }
    }
    string answ;
    for(int i=0;i<N;i++)
    answ+=p[i];

    return answ;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...