제출 #1097387

#제출 시각아이디문제언어결과실행 시간메모리
1097387LCJLY콤보 (IOI18_combo)C++14
100 / 100
27 ms1312 KiB
#include "combo.h" #include <bits/stdc++.h> using namespace std; //void press(p); string guess_sequence(int N) { //first letter guess char first; int hold= press("AB"); if(hold>=1){ hold=press("A"); if(hold==1){ first='A'; } else{ first='B'; } } else{ hold=press("X"); if(hold==1){ first='X'; } else{ first='Y'; } } unordered_map<string,string>mp; unordered_map<char,char>mp2; if(first=='A'){ mp["AB"]="XY"; mp["AX"]="XX"; mp["AY"]="XB"; mp["B"]='B'; mp2['A']='X'; mp2['B']='B'; mp2['X']='Y'; } else if(first=='B'){ mp["AB"]="XY"; mp["AX"]="XA"; mp["AY"]="XX"; mp["B"]='A'; mp2['A']='X'; mp2['B']='A'; mp2['X']='Y'; } else if(first=='X'){ mp["AB"]="AB"; mp["AX"]="AY"; mp["AY"]="AA"; mp["B"]='B'; mp2['A']='A'; mp2['B']='B'; mp2['X']='Y'; } else{ //Y mp["AB"]="AB"; mp["AX"]="AX"; mp["AY"]="AA"; mp["B"]='B'; mp2['A']='A'; mp2['B']='B'; mp2['X']='X'; } //normal guess string ans=""; ans.push_back(first); for(int x=1;x<N-1;x++){ hold=press(ans+mp["AB"]+ans+mp["AX"]+ans+mp["AY"]+ans+mp["B"]); if(hold==x+2){ ans.push_back(mp2['A']); } else if(hold==x+1){ ans.push_back(mp2['B']); } else{ ans.push_back(mp2['X']); } } //last guess if(N>1){ hold=press(ans+"A"+ans+"B"); if(hold==N){ hold=press(ans+"A"); if(hold==N){ ans.push_back('A'); } else{ ans.push_back('B'); } } else{ hold=press(ans+"X"); if(hold==N){ ans.push_back('X'); } else{ ans.push_back('Y'); } } } //cout << ans << " guess\n"; return ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...