rt,代码:
#include<bits/stdc++.h>
#define int long long
#define mkpr make_pair
#define psbk push_back
#define fst first
#define scd second
using namespace std;
const int inf=0x3f3f3f3f;
typedef pair<int,int> pii;
string s;
int n,wws,ans=inf;
int cal(int l,int r)
{
int ret=0;
for(int i=l;i<=r;i++)
{
ret=ret*10+s[i]-'0';
}
return ret;
}
void srh(int x,int gs,int sum,int lstadd)
{
if(sum>n||gs>=ans)
{
return;
}
if(x==s.size()-1)
{
if(sum+cal(lstadd+1,s.size()-1)==n)
{
ans=min(ans,gs);
}
return;
}
if(x-lstadd<=wws)
{
srh(x+1,gs+1,sum+cal(lstadd+1,x),x);
}
srh(x+1,gs,sum,lstadd);
}
signed main()
{
cin>>s>>n;
wws=(int)(log10(n))+1;
s=" "+s;
srh(1,0,0,0);
cout<<(ans>1000?-1:ans);
return 0;
}