Submission #199660

#TimeUsernameProblemLanguageResultExecution timeMemory
199660mohammedehab2002Password (RMI18_password)C++14
100 / 100
349 ms760 KiB
#include <bits/stdc++.h> using namespace std; pair<int,char> f[26]; int query(string s); string guess(int n,int c) { for (char a='a';a<'a'+c;a++) f[a-'a']={query(string(n,a)),a}; sort(f,f+26); string ans=""; for (int j=0;j<26;j++) { char a=f[j].second; int p=ans.size(); string tmp=ans; for (int i=0;i<f[j].first;i++) { while (p>=15 && query(ans.substr(0,p-15)+string(i+1,a))<=p-15+i) p-=16; int st=max(p-15,0),en=p; while (st!=en) { int mid=(st+en+1)/2; if (query(ans.substr(0,mid)+string(i+1,a))>mid+i) st=mid; else en=mid-1; } tmp.insert(tmp.begin()+st,a); p=st; } ans=tmp; } return ans; }
#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...