#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
typedef long long ll;
using namespace __gnu_pbds;
using namespace std;
template <typename T>
using ordered_set = tree<T, null_type, less<T>, rb_tree_tag, tree_order_statistics_node_update>;
int query(string str);
int N;
void cut_first(string &s) {
assert(s.size());
reverse(s.begin(), s.end());
s.pop_back();
reverse(s.begin(), s.end());
}
string MergeSort(vector<string> t) {
if(t.size()==1) return t[0];
vector<string> t1, t2;
for(int i=0; i<t.size()/2; ++i) t1.push_back(t[i]);
for(int i=t.size()/2; i<t.size(); ++i) t2.push_back(t[i]);
string s1 = MergeSort(t1);
string s2 = MergeSort(t2);
string s = "";
while(s1.size() && s2.size()) {
string q = s + s1[0] + s2;
if(query(q)==q.size()) {
s+=s1[0];
cut_first(s1);
} else {
s+=s2[0];
cut_first(s2);
}
}
s += s1 + s2;
return s;
}
string pwt(char c, int x) {
string s = "";
while(x--) s.push_back(c);
return s;
}
string guess(int n, int S) {
N=n;
string alph = "abcdefghijklmnopqrstuvwxyz";
vector<string> tab;
for(int i=0; i<S; ++i) {
tab.push_back(pwt(alph[i], query(pwt(alph[i],n))));
}
return MergeSort(tab);
}
| # | 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... |