This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include<bits/stdc++.h>
//#include "grader.cpp"
using namespace std;
int i,j,p,d,m,k,sz;
int query(string q);
string ans;
vector <pair <int,char>> cnt;
string guess(int n,int s)
{
ans="";
///pisheshe i<='z'
for(char c='a';c<='z';c++)
{
if(c-'a'+1>s)break;
string f="";
for(i=1;i<=n;i++)
f.push_back(c);
p=query(f);
if(p==0)continue;
cnt.push_back({-p,c});
}
sort(cnt.begin(),cnt.end());
sz=cnt.size()-1;
for(i=1;i<=-cnt[sz].first;i++)
ans.push_back(cnt[sz].second);
string newans="";
for(int i=sz-1;i>=0;i--)
{
//cout<<ans<<" ans in the beginning"<<endl;
if(cnt[i].first==0)break;
cnt[i].first=-cnt[i].first;
int tek=ans.size();
newans="";
string l="",r=ans;
// cout<<l<<" nachalni "<<r<<endl;
int still=cnt[i].first;
for(int j=0;j<tek;j++)
{
l.push_back(ans[j]);
r.erase(0,1);
string f=l;
for(int g=1;g<=still;g++)
f.push_back(cnt[i].second);
if(!r.empty())
f=f+r;
// cout<<f<<" for a query"<<endl;
p=query(f);
k=p-(int)l.size();
if(k<still)
{
for(int g=1;g<=still-k;g++)
newans.push_back(cnt[i].second);
still=k;///stil-(stil-k)
}
newans.push_back(ans[j]);
}
for(int g=1;g<=still;g++)
newans.push_back(cnt[i].second);
ans="";
ans=newans;
}
return ans;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |