Submission #332525

#TimeUsernameProblemLanguageResultExecution timeMemory
332525xt0r3Password (RMI18_password)C++14
40 / 100
103 ms492 KiB
#include<bits/stdc++.h> using namespace std; int query(string str); string merge(vector<string>& sol, int lo, int hi){ if(lo == hi) return sol[lo]; int mi = (lo + hi) / 2; string s1 = merge(sol, lo, mi); string s2 = merge(sol, mi + 1, hi); int curr = 0, dex = 0; string res = ""; while(curr < (int)s1.size() && dex < (int)s2.size()){ string tmp = res + s2[dex] + s1.substr(curr); int kene = res.size() + s1.size() - curr + 1; if(query(tmp) == kene){ res += s2[dex++]; } else{ res += s1[curr++]; } } if(curr < (int)s1.size()) res += s1.substr(curr); if(dex < (int)s2.size()) res += s2.substr(dex); return res; } string guess(int n, int s){ vector<string> sol(s, ""); for(int i = 0; i < s; i++){ do{ string ss = "a"; ss[0] += i; sol[i] += ss; }while(query(sol[i]) == (int)sol[i].size()); sol[i] = ((int)sol[i].size() == 1 ? "" : sol[i].substr(0, (int)sol[i].size() - 1)); } return merge(sol, 0, s - 1); }
#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...