Submission #112707

#TimeUsernameProblemLanguageResultExecution timeMemory
112707imaxblueCombo (IOI18_combo)C++17
100 / 100
46 ms600 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long #define mp make_pair #define pb push_back #define x first #define y second #define pii pair<int, int> #define p3i pair<pii, int> #define pll pair<ll, ll> #define p3l pair<pll, ll> #define vi vector<int> #define vpii vector<pii> #define vp3i vector<p3i> #define vpll vector<pll> #define vp3l vector<p3l> #define lseg L, (L+R)/2, N*2+1 #define rseg (L+R)/2+1, R, N*2+2 #define ub upper_bound #define lb lower_bound #define pq priority_queue #define MN 1000000007 #define fox(k, x) for (int k=0; k<x; ++k) #define fox1(k, x) for (int k=1; k<=x; ++k) #define foxr(k, x) for (int k=x-1; k>=0; --k) #define fox1r(k, x) for (int k=x; k>0; --k) #define ms multiset #define flood(x) memset(x, 0x3f3f3f3f, sizeof x) #define drain(x) memset(x, 0, sizeof x) #define rng() ((rand() << 14)+rand()) #define scan(X) do{while((X=getchar())<'0'); for(X-='0'; '0'<=(_=getchar()); X=(X<<3)+(X<<1)+_-'0');}while(0) char _; #define pi 3.14159265358979323846 string s; int press(string p);/*{ fox(l, s.size()){ if (p.find(s.substr(0, l+1))==string::npos) return l; } return s.size(); }*/ char st; string poss = "ABXY", r, q; string guess_sequence(int N){ int a1 = (press("AX")>0); int a2 = (press("AY")>0); if (a1 && a2){ st = 'A'; } else if (a1){ st = 'X'; } else if (a2){ st = 'Y'; } else { st = 'B'; } fox(l, 4){ if (poss[l] == st){ poss.erase(poss.begin()+l); break; } } r += st; while(r.size() < N-1){ q = r + poss[0]; fox(l2, 3){ q += r + poss[1]+poss[l2]; } int t = press(q); //cout << r << ' ' << t << endl; if (t == r.size()){ r += poss[2]; } else if (t == r.size() + 1){ r += poss[0]; } else if (t == r.size() + 2){ r += poss[1]; } } if (r.size() < N){ int t = press(r + poss[0]) - r.size(); int t2 = press(r + poss[1]) - r.size(); if (t) r += poss[0]; else if (t2) r+= poss[1]; else r += poss[2]; } return r; }/* int32_t main(){ s = "ABXXY"; cout << guess_sequence(5); return 0; }*/

Compilation message (stderr)

combo.cpp: In function 'std::string guess_sequence(int)':
combo.cpp:63:18: warning: comparison of integer expressions of different signedness: 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   63 |   while(r.size() < N-1){
      |         ~~~~~~~~~^~~~~
combo.cpp:70:11: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   70 |     if (t == r.size()){
      |         ~~^~~~~~~~~~~
combo.cpp:72:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   72 |     } else if (t == r.size() + 1){
      |                ~~^~~~~~~~~~~~~~~
combo.cpp:74:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   74 |     } else if (t == r.size() + 2){
      |                ~~^~~~~~~~~~~~~~~
combo.cpp:78:16: warning: comparison of integer expressions of different signedness: 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   78 |   if (r.size() < N){
      |       ~~~~~~~~~^~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...