Submission #585885

#TimeUsernameProblemLanguageResultExecution timeMemory
585885Valters07Combo (IOI18_combo)C++14
100 / 100
38 ms592 KiB
#include <bits/stdc++.h> #include "combo.h" #pragma GCC optimize("O2,unroll-loops") #define fio ios_base::sync_with_stdio(0);cin.tie(0); #define ll long long #define en cin.close();return 0; #define pb push_back #define fi first//printf("%lli\n",cur); #define se second//scanf("%lli",&n); #define r0 return 0; using namespace std; mt19937 rng(chrono::steady_clock::now().time_since_epoch().count()); string conc(vector<char> ve) { string ret = ""; for(auto x:ve) ret+=x; return ret; } string guess_sequence(int n) { vector<char> ch = {'A','B','X','Y'}; char st = '?'; if(press(conc({ch[0],ch[1]}))>=1) st=(press(conc({ch[0]}))==1?ch[0]:ch[1]); else st=(press(conc({ch[2]}))==1?ch[2]:ch[3]); for(int i = 0;i<ch.size();i++) if(st==ch[i]) ch.erase(ch.begin()+i); string ans = ""; ans+=st; for(int i = 1;i<n-1;i++) { string constr = ""; constr+=ans; constr+=ch[1]; for(int j = 0;j<ch.size();j++) constr+=ans, constr+=ch[2], constr+=ch[j]; int t = press(constr); if(t==ans.size()) ans+=ch[0]; else if(t==ans.size()+1) ans+=ch[1]; else ans+=ch[2]; } if(n>1) { string constr = ans; constr+=ch[0]; if(press(constr)==n) ans+=ch[0]; else { constr.back()=ch[1]; if(press(constr)==n) ans+=ch[1]; else ans+=ch[2]; } } return ans; }

Compilation message (stderr)

combo.cpp: In function 'std::string guess_sequence(int)':
combo.cpp:28:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   28 |     for(int i = 0;i<ch.size();i++)
      |                   ~^~~~~~~~~~
combo.cpp:38:24: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   38 |         for(int j = 0;j<ch.size();j++)
      |                       ~^~~~~~~~~~
combo.cpp:43:13: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   43 |         if(t==ans.size())
      |            ~^~~~~~~~~~~~
combo.cpp:45:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   45 |         else if(t==ans.size()+1)
      |                 ~^~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...