Submission #866635

#TimeUsernameProblemLanguageResultExecution timeMemory
866635sofija6Password (RMI18_password)C++14
0 / 100
1 ms436 KiB
#include <bits/stdc++.h>
 
using namespace std;

int query(string str);

string guess(int n, int s)
{
    string ans="";
    int cnt[26]={0};
    for (int i=0;i<26;i++)
    {
        int l=1,r=n,mid;
        while (l<=r)
        {
            mid=(l+r)/2;
            string s="";
            for (int j=1;j<=mid;j++)
                s+=(char)('a'+i);
            if (query(s)==mid)
            {
                cnt[i]=mid;
                l=mid+1;
            }
            else
                r=mid-1;
        }
    }
    for (int i=1;i<=n;i++)
    {
        int l=0,r=25,mid,lastt=-1;
        while (l<=r)
        {
            mid=(l+r)/2;
            string s=ans;
            for (int j=0;j<=mid;j++)
            {
                if (cnt[j])
                    s+=(char)(j+'a');
            }
            if (query(s)>ans.size())
            {
                lastt=mid;
                r=mid-1;
            }
            else
                l=mid+1;
        }
        ans+=(char)(lastt+'a');
        cnt[lastt]--;
    }
    return ans;
}

Compilation message (stderr)

password.cpp: In function 'std::string guess(int, int)':
password.cpp:41:25: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   41 |             if (query(s)>ans.size())
      |                 ~~~~~~~~^~~~~~~~~~~
#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...