Submission #1100383

#TimeUsernameProblemLanguageResultExecution timeMemory
1100383akzytrCombo (IOI18_combo)C++17
97 / 100
29 ms1956 KiB
#include <bits/stdc++.h> using namespace std; template <typename T> using ve = vector<T>; template <typename T, int sz> using ar = array<T, sz>; typedef long long ll; #define pb push_back #define fi first #define se second #define endl '\n' int press(string p); string guess_sequence(int N) { string s = ""; ve<char> lst; for(char j : {'A', 'B', 'X', 'Y'}) { lst.pb(j); } for(char j : lst) { int sc = press(s + j); if(sc == 1) { s += j; break; } else if(j == lst[lst.size() - 2]) { s += lst[lst.size() - 1]; break; } } for(int i = 1; i < N - 1; i++) { ve<char> lst; for(char j : {'A', 'B', 'X', 'Y'}) { if(j == s[0]) { continue; } lst.pb(j); } string q = ""; q += s + lst[0]; q += s + lst[1] + lst[0]; q += s + lst[1] + lst[1]; q += s + lst[1] + lst[2]; int score = press(q); if(score == s.size() + 1) { s += lst[0]; } else if(score == s.size()) { s += lst[2]; } else if(score == s.size() + 2) { s += lst[1]; } } lst.clear(); for(char j : {'A', 'B', 'X', 'Y'}) { if(j == s[0]) { continue; } lst.pb(j); } if(N > 1) { for(char j : lst) { int sc = press(s + j); if(sc == N) { s += j; break; } else if(j == lst[lst.size() - 2]) { s += lst[lst.size() - 1]; break; } } } return s; }

Compilation message (stderr)

combo.cpp: In function 'std::string guess_sequence(int)':
combo.cpp:49:12: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   49 |   if(score == s.size() + 1) {
      |      ~~~~~~^~~~~~~~~~~~~~~
combo.cpp:51:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   51 |   } else if(score == s.size()) {
      |             ~~~~~~^~~~~~~~~~~
combo.cpp:53:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   53 |   } else if(score == s.size() + 2) {
      |             ~~~~~~^~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...