제출 #388351

#제출 시각아이디문제언어결과실행 시간메모리
388351warner1129콤보 (IOI18_combo)C++17
0 / 100
1 ms456 KiB
// #define local #include <bits/stdc++.h> using namespace std; #ifdef local int press(string p) { cout << p; int ret; cin >> ret; return ret; } string guess_sequence(int); signed main() { int n; cin >> n; cout << guess_sequence(n) << '\n'; return 0; } #else #include <combo.h> #endif string guess_sequence(int n) { string ans, tmp; int ret, len = 1; ret = press("AB"); if (ret == 1) { ret = press("A"); if (ret == 1) ans = "A"; else ans = "B"; } else { ret = press("X"); if (ret == 1) ans = "X"; else ans = "Y"; } vector<string> L; if ("A" != ans) L.push_back("A"); if ("B" != ans) L.push_back("B"); if ("X" != ans) L.push_back("X"); if ("Y" != ans) L.push_back("Y"); string P[4]; P[0] = L[0] + L[0], P[1] = L[0] + L[1], P[2] = L[0] + L[2]; P[3] = L[1]; for (int i = 2; i < n; i++) { tmp = ""; for (int j = 0; j < 4; j++) tmp += (ans + P[j]); ret = press(tmp); if (ret == len + 2) ans += L[0]; else if (ret == len + 1) ans += L[1]; else if (ret == len) ans += L[2]; len++; } ret = press(ans + L[0] + ans + L[1]); if (ret == len+1) { ret = press(ans + L[0]); if (ret == len+1) ans += L[0]; else ans += L[1]; } else if (ret == len) ans += L[2]; assert(ans.size() == n); return ans; }

컴파일 시 표준 에러 (stderr) 메시지

In file included from /usr/include/c++/10/cassert:44,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:33,
                 from combo.cpp:3:
combo.cpp: In function 'std::string guess_sequence(int)':
combo.cpp:64:20: warning: comparison of integer expressions of different signedness: 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   64 |  assert(ans.size() == n);
      |         ~~~~~~~~~~~^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...