Submission #916909

#TimeUsernameProblemLanguageResultExecution timeMemory
916909_VIBECombo (IOI18_combo)C++17
0 / 100
1 ms344 KiB
#include "combo.h"
#include<bits/stdc++.h>
 
 
 
std::string guess_sequence(int N) {
 	using namespace std;
  	
  	//guesing the first character
  	// in three queries
  	
   set<char> s={'A','X','B','Y'};
    string ans;
  
    vector<int> v1={'A','X','B','Y'};
    
    string q;
    q=v1[0];q+=v1[1];
    
    
    if(press(q)>0){
        q=v1[0];q+=v1[2];
        if(press(q)>0) ans=v1[0];
        else ans=v1[1];
    }
    else{
        q=v1[3];
        if(press(q)==1) ans=v1[3];
        else ans=v1[4];
    }
    
 
    s.erase(ans[0]);
  
  	if(N==1) return ans;
  
  	vector<char> v={s.begin(),s.end()};
  	// ans contains prefix of my actual string
  	
  	for(int i=1;i<N-1;i++){
      	
      	string q;
      	//query at ith index(0 based)
      	//lets say remaining three characters x,b,y
		// then i query for ans+xx+ans+xb+ans+xy+ans+y
      	//if result==i then b appears
      	// if result==i+2 then x appears
      	// if result==i+1 then y appears      
      
      	for(int j=0;j<3;j++) q+=ans+v[0]+v[j];
      	
      	q+=ans+v[1];
      	int res=press(q);
      	
      	if(res==i) ans+=v[2];
      	else if(res==i+2) ans+=v[0];
      	else ans+=v[1];
    
    }
  	
  	for(int i=0;i<2;i++){
      	string q=ans+v[i];
      	if(press(q)==N) return q;
    }
  
  	ans+=v[2];
  	return ans;
  	
  
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...