Submission #331252

#TimeUsernameProblemLanguageResultExecution timeMemory
331252PetiPassword (RMI18_password)C++14
100 / 100
307 ms940 KiB
#include <iostream>
#include <vector>

using namespace std;

int query(string str);

string merge_strings(string sa, string sb){
    if(sa.size() < sb.size())
        swap(sa, sb);

    int x = 0;
    for(int i = 0; i < sb.size(); i++){
        while(1){
            string q = sa;
            q.insert(q.begin()+x, sb[i]);
            if(query(q) == (int)q.size()){
                sa = q;
                break;
            }
            x++;
        }
        x++;
    }

    return sa;
}

string guess(int n, int s){
    vector<string> v(s);
    for(int i = 0; i < s; i++){
        char c = (char)((int)'a' + i);
        string q;
        q.assign(n, c);
        v[i].assign(query(q), c);
    }

    while(v.size() > 1){
        int x = 0;
        for(int i = 0; i < (int)v.size(); i += 2){
            if(i+1 < (int)v.size())
                v[x++] = merge_strings(v[i], v[i+1]);
            else
                v[x++] = v[i];
        }
        v.resize(x);
    }

    return v[0];
}

Compilation message (stderr)

password.cpp: In function 'std::string merge_strings(std::string, std::string)':
password.cpp:13:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   13 |     for(int i = 0; i < sb.size(); i++){
      |                    ~~^~~~~~~~~~~
#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...