Submission #1359687

#TimeUsernameProblemLanguageResultExecution timeMemory
1359687osmiyumCombo (IOI18_combo)C++20
100 / 100
6 ms524 KiB
#include "combo.h"
//#pragma GCC optimize("Bismillahirrahmanirrahim")
//█▀█─█──█──█▀█─█─█
//█▄█─█──█──█▄█─█■█
//█─█─█▄─█▄─█─█─█─█
//Alllahuekber
//osmiyum
//23orz
//Sani buyuk Osman Pasa Plevneden cikmam diyor.
//FatihSultanMehmedHan
//YavuzSultanSelimHan
//AbdulhamidHan
//dört böler altı artı iki ama ne böler altı ne böler iki
//Başarı, Boş Duranın Hakkı Değil... Koşturanın Hakkıdır. Hakan?
//Ne yapayım, elimden gelen bu :(
//#pragma GCC optimize("Ofast")
#include <bits/stdc++.h>
/* #define int long long */
#define pb push_back
#define ins insert
#define ll long long
#define mid (l+r)/2
#define invalid (l>r || l>qr || r<ql)
#define fi first
#define se second
#define _ <<" "<<
#define btt (1ll<<bt)
#define son (i==n?"\n":" ")
using namespace std;
typedef pair<int,int> pii;
const int INF=1e5+5;
const int big=1e9;
const int MOD=998244353;

string guess_sequence(int N) {
  string s;int n=N;
  int x=press("AB");
  if(!x){int y=press("Y");s=(y?"Y":"X");}
  else{int y=press("A");s=(y?"A":"B");}
  if(n==1)return s;
  if(s=="A"){
    for(int i=2;i<n;i++){
      string uret=s+'B';
      uret+=s+"XX";uret+=s+"XB";uret+=s+"XY";
      int val=press(uret);
      if(val==i-1){s+='Y';}
      else if(val==i){s+="B";}
      else s+="X";
    }
    int x=press(s+"B");
    if(x<n){int y=press(s+"Y");s+=(y==n?"Y":"X");}
    else{s+="B";}
    return s;
  }
  if(s=="B"){
    for(int i=2;i<n;i++){
      string uret=s+'A';
      uret+=s+"XX";uret+=s+"XA";uret+=s+"XY";
      int val=press(uret);
      if(val==i-1){s+='Y';}
      else if(val==i){s+="A";}
      else s+="X";
    }
    int x=press(s+"A");
    if(x<n){int y=press(s+"Y");s+=(y==n?"Y":"X");}
    else{s+="A";}
    return s;
  }
  if(s=="X"){
    for(int i=2;i<n;i++){
      string uret=s+'A';
      uret+=s+"BB";uret+=s+"BA";uret+=s+"BY";
      int val=press(uret);
      if(val==i-1){s+='Y';}
      else if(val==i){s+="A";}
      else s+="B";
    }
    int B=press(s+"A");
    if(B<n){int y=press(s+"Y");s+=(y==n?"Y":"B");}
    else{s+="A";}
    return s;
  }
  if(s=="Y"){
    for(int i=2;i<n;i++){
      string uret=s+'A';
      uret+=s+"BB";uret+=s+"BA";uret+=s+"BX";
      int val=press(uret);
      if(val==i-1){s+='X';}
      else if(val==i){s+="A";}
      else s+="B";
    }
    int B=press(s+"A");
    if(B<n){int X=press(s+"X");s+=(X==n?"X":"B");}
    else{s+="A";}
    return s;
  }
  
}

Compilation message (stderr)

combo.cpp: In function 'std::string guess_sequence(int)':
combo.cpp:98:1: warning: control reaches end of non-void function [-Wreturn-type]
   98 | }
      | ^
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...