rt.
AT端口并没有修好,而是在站外某个地方在做这道题,但是WA了。
#include<iostream>
#include<cstring>
using namespace std;
#define nas "UNRESTORABLE"
#define l() length()
string a,b;
string anser[55];
int ans[55];
int end=0;
bool same(int cur)
{
for(int i=cur;i<cur+b.length();i++)
{
if(a[i]!=b[i-cur]&&a[i]!='?')return false;
}
return true;
}
int main()
{
cin>>a>>b;
if(a.l()<b.l()){
cout<<nas;
}
bool find=false;
for(int i=0;i<55;i++)anser[i]=a;
for(int i=a.l()-b.l()+1;i>=0;i--)
{
if(same(i))
{
for(int j=i;j<i+b.l();j++)
{
anser[end][j]=b[j-i];
}
for(int j=0;j<a.l();j++)
{
if(anser[end][j]=='?')
{
anser[end][j]='a';
}
}
find=true;
end++;
}
}
if(!find)cout<<nas;
else{
string best=anser[0];
for(int i=0;i<end;i++)
{
if(anser[i]<best)best=anser[i];
}
cout<<best;
}
return 0;
}