제출 #623124

#제출 시각아이디문제언어결과실행 시간메모리
623124l_reho콤보 (IOI18_combo)C++14
30 / 100
49 ms488 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; i++){ // YXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXBBBBBABABBABABBABABAAXXXXXXXXXXXXXXX int low = 0; int high = 3; string v = ""; while(low < high){ int mid = low + (high-low)/2; string left = ""; for(int j = low; j <= mid; j++) left += guess + voc[j]; if(press(left) == (int)guess.length()+1){ v = voc[mid]; high = mid; }else{ low = mid+1; } } guess += v; /* 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; } } */ } return guess; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...