Submission #1315194

#TimeUsernameProblemLanguageResultExecution timeMemory
1315194Zone_zoneeCombo (IOI18_combo)C++20
100 / 100
8 ms500 KiB
#include <vector> #include "combo.h" std::string guess_sequence(int N) { using namespace std; string s = ""; // 2 presses if(press("AB")) s += press("A") ? 'A' : 'B'; else if(press("X")) s += 'X'; else s += 'Y'; vector<char> chars; if(s[0] != 'A') chars.push_back('A'); if(s[0] != 'B') chars.push_back('B'); if(s[0] != 'X') chars.push_back('X'); if(s[0] != 'Y') chars.push_back('Y'); // N-2 presses for(int i = 1; i < N-1; ++i){ string t = s; t += chars[1]; for(char c : chars) t += s + chars[2] + c; int p = press(t); s += chars[p-i]; // if we loop i upto N // s size can be upto N-1 // t size is 3s + 1 + 6 = 3s + 7 = 3(N-1) + 7 = 3N + 4 // which is too big for N = 3, so we use i < N } // catch N == 1 case so it doesn't add over N if(N == 1) return s; // make up for the cut loop, 2 presses if(press(s+"A"+s+"B") == N) s += (press(s+"A") == N) ? 'A' : 'B'; else if(press(s+"X") == N) s += 'X'; else s += 'Y'; return s; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...