Submission #1159688

#TimeUsernameProblemLanguageResultExecution timeMemory
1159688fryingducPassword (RMI18_password)C++17
0 / 100
29 ms464 KiB
#include <string> #include <queue> using namespace std; int query(string q); string guess(int n, int c) { priority_queue<pair<int, string>> pq; for (int i = 0; i < c; ++i) { string cur; for (int j = 0; j < n; ++j) { cur += char('a' + i); } int x = query(cur); if (x > 0) { cur.clear(); for (int j = 0; j < x; ++j) { cur += char('a' + i); } pq.push(make_pair(x, cur)); } } while ((int)pq.size() > 1) { string x = pq.top().second; pq.pop(); string y = pq.top().second; pq.pop(); string res; int px = 0, py = 0; while (px < (int)x.size() and py < (int)y.size()) { string g = res + x[px]; for (int i = py; i < (int)y.size(); ++i) { g += y[i]; } int cur_g = query(g); if (cur_g > (int)res.size() + (int)y.size() - py) { res += x[px++]; } else { res += y[py++]; } } while (px < (int)x.size()) { res += x[px++]; } while (py < (int)y.size()) { res += y[py++]; } pq.push(make_pair((int)res.size(), res)); } return pq.top().second; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...