제출 #1014534

#제출 시각아이디문제언어결과실행 시간메모리
1014534nisanduu콤보 (IOI18_combo)C++14
0 / 100
0 ms344 KiB
/****************************************************************************** Online C++ Compiler. Code, Compile, Run and Debug C++ program online. Write your code in this editor and press "Run" button to compile and execute it. *******************************************************************************/ #include "combo.h" #include <bits/stdc++.h> using namespace std; typedef long long ll; // int press(string s){ // string s1 = "XBA"; // if(s=="X") return 1; // return 0; // } string guess_sequence(int n){ string st = ""; char ct = 'A'; vector<char> cs = {'A','B','X','Y'}; string sx1 = "",sx2 = ""; sx1 += (cs[0]+cs[1]); int sc11 = press(sx1); if(sc11>0){ sx1 = ""; sx1 += (cs[0]); sc11 = press(sx1); if(sc11>0){ ct = cs[0]; st += ct; }else{ ct = cs[1]; st += ct; } }else{ sx1 = ""; sx1 += (cs[2]); sc11 = press(sx1); if(sc11>0){ ct = cs[2]; st += ct; }else{ ct = cs[3]; st += ct; } } string ans = st; vector<char> other = {'A','B','X','Y'}; auto ite = find(other.begin(),other.end(),ct); other.erase(ite); vector<string> possible; for(ll i=0;i<3;i++){ string s2 = ""; s2+=other[i]; for(ll j=0;j<3;j++){ if(i!=j){ string tmp=s2; tmp += other[j]; possible.push_back(tmp); } } } ll p = 1; for(ll i=1;i<n;i++){ string s1 = "",s2 = ""; s1 += (ans + other[0] + ans + other[1]); s2 += (ans + other[2]); int sc1 = press(s1); if(sc1 > ans.size()){ s1 = (ans + other[0]); sc1 = press(s1); if(sc1 > ans.size()){ ans += other[0]; }else{ ans += other[1]; } }else{ ans += other[2]; } } // while(p+1 < n){ // string s1 = "",s2 = ""; // s1 += (ans + possible[0] + ans + possible[1] + ans + possible[2]); // s2 += (ans + possible[3] + ans + possible[4] + ans + possible[5]); // int sc1 = press(s1); // if(sc1 > ans.size()+1){ // s1 = (ans + possible[0]+ ans + possible[1]); // s2 = (ans + possible[2]); // sc1 = press(s1); // sc2 = press(s2); // if(sc1 > sc2){ // s1 = (ans + possible[0]); // }else{ // if(sc2 == ans.size()+1){ // ans = ans + possible[2][0] + possible[2][0]; // }else{ // ans = ans + possible[2]; // } // } // }else{ // s1 = (ans + possible[3]+ ans + possible[4]); // s2 = (ans + possible[5]); // } // } return ans; }

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

combo.cpp: In function 'std::string guess_sequence(int)':
combo.cpp:71:16: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   71 |         if(sc1 > ans.size()){
      |            ~~~~^~~~~~~~~~~~
combo.cpp:74:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   74 |             if(sc1 > ans.size()){
      |                ~~~~^~~~~~~~~~~~
combo.cpp:65:8: warning: unused variable 'p' [-Wunused-variable]
   65 |     ll p = 1;
      |        ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...