이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
using namespace std;
#define TRACE(x) cerr << #x << " :: ";
#define _ << " " <<
#define FOR(i,a,b) for(int i=(a);i<=(b);++i)
#define RFOR(i,a,b) for(int i=(a);i>=(b);--i)
#define SZ(x) ((int)(x).size())
int query(string Q);
string solve(vector<string>& vec, int l, int r) {
if (l == r) return vec[l];
int m = (l+r)>>1;
string x = solve(vec,l,m), y = solve(vec,m+1,r);
string S = "";
int i, j;
for (i = 0, j = 0; i < SZ(x) && j < SZ(y);) {
string T = S + y[j] + x.substr(i);
int q = query(T);
if (q == SZ(T)) S += y[j++];
else S += x[i++];
}
if (i < SZ(x)) S += x.substr(i);
if (j < SZ(y)) S += y.substr(j);
return S;
}
string guess(int N, int S) {
vector<string> vec;
FOR(i,0,S-1){
string s(N,'a'+i);
int freq = query(s);
vec.push_back(string(freq,'a'+i));
}
return solve(vec,0,SZ(vec)-1);
}
# | 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... |