Submission #997260

#TimeUsernameProblemLanguageResultExecution timeMemory
997260MarwenElarbiPassword (RMI18_password)C++17
100 / 100
310 ms1236 KiB
#include <bits/stdc++.h>
#include <stdlib.h>
#include <assert.h>
using namespace std;
#define fi first
#define se second
#define ll long long
#define pb push_back
#define ii pair<int,int>
const int nax=2e5+5;
vector<string> check(26);
int query(string q);
string  daq(int l,int r){
    if(l==r) return check[l];
    int mid=(r+l)/2;
    string a=daq(l,mid);
    string b=daq(mid+1,r);
    string ans="";
    int t=0;
    for (int i = 0; i < a.size(); ++i)
    {
        while(t<b.size()){
            string cur="";
            for (int j = 0; j < ans.size(); ++j)
            {
                cur.pb(ans[j]);
            }
            cur.pb(b[t]);
            for (int j = i; j < a.size(); ++j)
            {
                cur.pb(a[j]);
            }
            int x=query(cur);
            if(x==cur.size()){
                ans.pb(b[t]);
                t++;
            }else break;
        }
        ans.pb(a[i]);
    }
    while(t<b.size()) ans.pb(b[t++]);
    //cout <<l<<" "<<r<<" "<<ans<<endl;
    return ans;
}
string guess(int n, int s){
    int tab[s];
    for (int i = 0; i < s; ++i)
    {
        string cur="";
        for (int j = 0; j < n; ++j)
        {
            cur.pb(char('a'+i));
        }
        tab[i]=query(cur);
    }
    for (int i = 0; i < s; ++i)
    {
        for (int j = 0; j < tab[i]; ++j)
        {
            check[i].pb(char('a'+i));
        }
    }
    return daq(0,s-1);
}

Compilation message (stderr)

password.cpp: In function 'std::string daq(int, int)':
password.cpp:20:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   20 |     for (int i = 0; i < a.size(); ++i)
      |                     ~~^~~~~~~~~~
password.cpp:22:16: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   22 |         while(t<b.size()){
      |               ~^~~~~~~~~
password.cpp:24:31: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   24 |             for (int j = 0; j < ans.size(); ++j)
      |                             ~~^~~~~~~~~~~~
password.cpp:29:31: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   29 |             for (int j = i; j < a.size(); ++j)
      |                             ~~^~~~~~~~~~
password.cpp:34:17: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   34 |             if(x==cur.size()){
      |                ~^~~~~~~~~~~~
password.cpp:41:12: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   41 |     while(t<b.size()) ans.pb(b[t++]);
      |           ~^~~~~~~~~
#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...