# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
475326 | ogibogi2004 | Password (RMI18_password) | C++14 | 0 ms | 0 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include<bits/stdc++.h>
using namespace std;
int query(string s);
string s1,s2,tmp;
int n1;
string solve(int l,int r)
{
if(l==r)
{
string s="";
for(int j=0;;j++)
{
s+=char('a'+l);
if(query(s)!=s.size())
{
s.pop_back();
return s;
}
}
}
int mid=(l+r)/2;
s1=solve(l,mid);
s2=solve(mid+1,r);
tmp="";
int j=0;
for(int i=0;i<=s1.size();i++)
{
if(j<s2.size())
{
tmp=s1;
tmp.insert(tmp.begin()+i,s2[j]);
if(query(tmp)==tmp.size())
{
s1=tmp;
j++;
}
}
}
while(j<s2.size())s1+=s2[j++];
//if(j<s2.size())assert(false);
//if(s1.size()==n1)assert(false);
return s1;
}
string guess(int n,int s)
{
n1=n;
string f=solve(0,s-1);
if(f.size()!=n)asssert(false);
return f;
}