이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
#pragma GCC optimize("Ofast")
using namespace std;
#define rep(i, a, b) for(ll i = a; i < ll(b); ++i)
#define rrep(i, a, b) for(ll i = b-1; i >= ll(a); --i)
#define trav(a, x) for(auto& a : x)
#define all(x) x.begin(), x.end()
#define sz(x) (ll)(x).size()
typedef long long ll;
typedef pair<ll, ll> pii;
typedef vector<ll> vi;
int query(string str);
string combine(string a, string b){
string ans = "";
//cout<<a<<" "<<b<<endl;
while(b.size()&&a.size()){
if(query(ans+b[0]+a)==sz(ans)+sz(a)+1){
ans += b[0];
b.erase(b.begin());
} else {
ans += a[0];
a.erase(a.begin());
}
}
ans+=b;
ans+=a;
//cout<<ans<<endl;
return ans;
}
string guess(int n, int s){
vector<string> v;
rep(i,0,s) {
v.push_back(string(query(string(n,'a'+i)),'a'+i));
//cout<<v.back()<<endl;
}
while(v.size()>=2){
vector<string> newV;
rep(i,0,v.size()/2) newV.push_back(combine(v[2*i],v[2*i+1]));
if(v.size()%2==1) newV.push_back(v.back());
v = newV;
}
return v[0];
}
# | 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... |