Submission #95741

#TimeUsernameProblemLanguageResultExecution timeMemory
95741ShaneOngCombo (IOI18_combo)C++14
94 / 100
59 ms520 KiB
#include <bits/stdc++.h> #include "combo.h" using namespace std; string guess_sequence(int N) { string ans = ""; int a=press("A"),b=press("B"),c=press("X"); unordered_set<char> poss {'A','B','X','Y'}; if(a){ ans+="A"; poss.erase('A'); }else if(b){ ans+="B"; poss.erase('B'); }else if(c){ ans+="X"; poss.erase('X'); }else{ ans+="Y"; poss.erase('Y'); } // printf("%d\n",poss.size()); for(int x=1;x<N-2;x++){ int temp=0; string qu = ""; auto it = poss.begin(); qu+=ans + *it; for(char c:poss){ qu+=ans+*next(it)+c; } //printf("%c %c %c\n",*next(it),*it,*next(next(it))); //printf("%s\n",qu.c_str()); int coins=press(qu); //printf("%s %d %d\n",qu.c_str(),coins,(int)ans.size()); // if(x==2) // return 0; if(coins==(int)ans.size()) ans+=*next(next(it)); else if(coins==2+(int)ans.size()){ ans+=*next(it); }else ans+=*it; } if(N>2){ a=press(ans+*poss.begin()),b=press(ans+*next(poss.begin())); if(a==N-1) ans+=*poss.begin(); else if(b==N-1) ans+=*next(poss.begin()); else ans+=*next(next(poss.begin())); } if(N>=2){ a=press(ans+*poss.begin()),b=press(ans+*next(poss.begin())); if(a==N) ans+=*poss.begin(); else if(b==N) ans+=*next(poss.begin()); else ans+=*next(next(poss.begin())); //cout<<ans; } return ans; }

Compilation message (stderr)

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