제출 #207471

#제출 시각아이디문제언어결과실행 시간메모리
207471aloo123콤보 (IOI18_combo)C++14
5 / 100
1 ms212 KiB
#include <bits/stdc++.h> #include <combo.h> #define ll long long #define ld long double #define f first #define s second #define mp make_pair #define pb push_back #define vll vector<ll> using namespace std; // string gg; // int press(string s){ // cout << s << endl; // string pre; // int ans = 0; // for(int i = 0 ;i<gg.size();i++){ // pre += gg[i]; // bool poss=false; // for(int j = 0;j<s.size();j++){ // if(j + pre.size() - 1 >= s.size()) break; // if(s.substr(j,pre.size()) == pre){ // poss=true; // } // } // if(poss) { // ans = max(ans,(int)pre.size()); // } // } // return ans; // } string guess_sequence(int N){ if(N == 3){ string s; for(int i = 0;i<N;i++){ for(char lol :{'X','Y','A','B'}){ string tmp = s; tmp += lol; if(press(tmp) == (s.size()+1)){ s = tmp; break; } } } return s; } char c; for(char lol :{'X','Y','A','B'}){ string s; s+=lol; if(press(s) == 1){ c=lol; break; } } string s; s += c; for(int i = 1;i<N-1;i++){ string query = s; if(c == 'A'){ query += "B"; query+=s; query+="XB"; query+=s; query += "XX"; query += s; query += "XY"; int lol = press(query); int n = s.size(); if(lol == n){ s += "Y"; } if(lol == (n+1)){ s += "B"; } if(lol == (n+2)){ s += "X"; } } if(c == 'B'){ query += "A"; query+=s; query+="XA"; query+=s; query += "XX"; query += s; query += "XY"; int lol = press(query); int n = s.size(); if(lol == n){ s += "Y"; } if(lol == (n+1)){ s += "A"; } if(lol == (n+2)){ s += "X"; } } if(c == 'X'){ query += "Y";// B query+=s; query+="AY";// XB query+=s; query += "AA";// XX query += s; query += "AB";// XY int lol = press(query); int n = s.size(); if(lol == n){ s += "B"; } if(lol == (n+1)){ s += "Y"; } if(lol == (n+2)){ s += "A"; } } if(c == 'Y'){ query += "X"; query+=s; query+="AX"; query+=s; query += "AA"; query += s; query += "AB"; int lol = press(query); int n = s.size(); if(lol == n){ s += "B"; } if(lol == (n+1)){ s += "X"; } if(lol == (n+2)){ s += "A"; } } } for(char lol :{'X','Y','A','B'}){ string ss=s; ss+=lol; if(press(ss) == N){ s = ss; break; } } return s; } // int main(){ // int n; // cin >> n; // cin >> gg; // cout << guess_sequence(n) << endl; // }

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

combo.cpp: In function 'std::string guess_sequence(int)':
combo.cpp:43:18: 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(press(tmp) == (s.size()+1)){
      |       ~~~~~~~~~~~^~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...