제출 #623456

#제출 시각아이디문제언어결과실행 시간메모리
623456l_reho콤보 (IOI18_combo)C++14
97 / 100
30 ms500 KiB
#include "combo.h" #include<bits/stdc++.h> using namespace std; int press(std::string p); std::string guess_sequence(int N) { // guess del primo carattere string guess = "A"; vector<string> voc{"A", "B", "X", "Y"}; // AABB se ritorna > 0 allora scarto le altre due string try1 = "AABB"; int ret = press(try1); if(ret > 0){ ret = press("A"); if(ret == 1) guess = "A"; else guess="B"; }else{ ret = press("X"); if(ret == 1) guess = "X"; else guess="Y"; } voc.erase(find(voc.begin(), voc.end(), guess)); for(int i = 1; i < N-1; i++){ string v = guess + voc[0] + guess + voc[1] + voc[0] + guess + voc[1] + voc[1] + guess + voc[1] + voc[2]; int ret = press(v); if(ret == (int)guess.length() + 1){ guess += voc[0]; }else if(ret == (int) guess.length() + 2) guess += voc[1]; else guess += voc[2]; /* for(int j = 0; j < 4; j++){ if(voc[j][0] == guess[0]) continue; int ret = press(guess + voc[j]); if(ret == (int)guess.length()+1){ guess += voc[j]; break; } } */ } if(N > 1){ for(int i = 0; i < 3; i++){ int ret = press(guess + voc[i]); if(ret == N){ guess += voc[i]; break; } } } return guess; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...