i have attached my code for sumthing.
i am getting 30/100. please find errors.
#include<iostream>
#include<vector>
#include<string>
#include<math.h>
#include<algorithm>
using namespace std;
int n;long long int t;int tab[55][100005];string arr;
vector v;
int dp(int endnum,long long int val)
{
if(!endnum)
{
if(val==v[0]) return 0;
else
return -1;
}
int vs=55;
if(tab[endnum][val]>=0)
return tab[endnum][val];
for(int j=endnum-1;j>=-1;j--)
{
long long int sub=0;
for(int k=endnum;k>=j+1;k--) sub+=(v[k]*pow(10,endnum-k));
long long int pass=val-sub;
if(pass>=0&&j!=-1)
{
if(tab[j][pass]>=0) return tab[j][pass];
tab[j][pass]=1+dp(j,pass);
vs=min(vs,tab[j][pass]);
}
else if(j==-1&&pass>=0)
{
if(sub==val)
return 0;
else
return -1;
}
else
break;
}
if(vs>n)
return -1;
tab[endnum][val]=vs;
return vs;
}
int main()
{
ios::sync_with_stdio(0);
cin>>n;
cin>>arr;
cin>>t;
for(int i=0;i<55;++i)
for(int j=0;j<100004;++j)
tab[i][j]=-1;
for(int i=0;i<n;++i) v.push_back(arr[i]-'0');
int ans=dp(n-1,t);
if(ans<=0) cout<<-1;
else cout<<ans;
return 0;
}