蒟蒻的自我拯救。。。
#include <iostream>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <cstdio>
using namespace std;
int save[100],len,n,ans;
char st[100];
void dfs(int loc,int sum,int now)
{
//printf("%d %d %d\n",loc,sum,now);
//system("pause");
int tloc=loc,tsum=sum,tnow=now;
if(loc==len)
{
if(sum==n)
{
ans++;
}
return;
}
dfs(tloc+1,sum+save[tloc+1],save[tloc+1]);
dfs(tloc+1,sum-save[tloc+1],-1*save[tloc+1]);
if(now>0)
{
dfs(tloc+1,sum+now*9+save[tloc+1],now*10+save[tloc+1]);
}
if(now<0)
{
dfs(tloc+1,sum+now*9-save[tloc+1],now*10-save[tloc+1]);
}
}
int main()
{
while(~scanf("%s%d",st,&n))
{
len=strlen(st);
for(int i=1;i<=len;i++)
{
save[i]=st[i-1]-'0';
}
ans=0;
dfs(1,save[1],save[1]);
printf("%d\n",ans);
}
return 0;
}