Submission #1241275

#TimeUsernameProblemLanguageResultExecution timeMemory
1241275HanksburgerPassword (RMI18_password)C++20
0 / 100
21 ms460 KiB
#include <bits/stdc++.h> using namespace std; int query(string s); string guess(int n, int s){ vector<char> a; unordered_map<char, int> mp; unordered_map<char, char> adj; for(char i = 'a'; i < 'a'+s; i++){ int amount = query(string(n, i)); if(amount != 0){ a.push_back(i); mp[i] = amount; } } string sol = ""; for(int i = 0; i < n; i++){ random_device rd; mt19937 g(rd()); shuffle(a.begin(), a.end(), g); if(i == 0 || a.size() > 1){ char prev = a[0]; for(auto &j : a){ if(prev == j) continue; if(query(sol + j + string(mp[prev], prev)) == sol.size() + mp[prev] + 1){ adj[prev] = j; prev = j; } else { adj[j] = prev; } } } char end = a[0]; while(true){ if(adj.count(end) == 0) break; end = adj[end]; } sol+=end; mp[end]--; vector<char> dis; if(mp[end]) dis.push_back(end); for(auto it = adj.begin(); it != adj.end();){ if(it->second == end){ dis.push_back(it->first); it = adj.erase(it); } else { it++; } } a.clear(); a = dis; } return sol; }
#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...