哇,今天头疼的要死。应该是脑子被熬夜熬坏了,嗯,以后一点以前一定要睡觉,不要刷B站,不要刷B站,不要刷B站,!!!!!!!!!这个题目,路径没有输出,实在不想做了,就先这样..反正路径的话可以利用回溯给他重新赋值一下,就差不多可以了;
#include<iostream>
#include<cstring>
#include<queue>
using namespace std;
int visit[100005];
int ans;
bool flag;
queue<string>q;
int getnum(string x)
{
int sum=0;
for(int i=0;i<x.length();++i)
sum*=10,sum+=x[i]-'0';
return sum;
}
void dfs(string x,string y,int sum)
{
if(sum>getnum(x))
return ;
if(y.length()==0||y=="")
{
if(ans<sum){ans=sum;visit[ans]++;}
else if(ans==sum){visit[ans]++;}
return ;
}
for(int i=1;i<=y.length();i++)
{
string s1=y.substr(0,i);
string s2=y.substr(i);
sum+=getnum(s1);
dfs(x,s2,sum);
sum-=getnum(s1);
}
}
int main()
{
string x,y;
while(cin>>x>>y)
{
flag=false;
if(x=="0"&&y=="0")break;
ans=-1;
memset(visit,0,sizeof(visit));
int s=0;
for(int i=0;i<y.length();++i)
s+=y[i]-'0';
if(y==x){cout<<y<<endl;continue;}
if(s>getnum(x)){cout<<"error"<<endl;continue;}
dfs(x,y,0);
if(visit[ans]>1){cout<<"rejected"<<endl;}
else
cout<<ans<<endl;
}
return 0;
}