https://hack.codingblocks.com/app/contests/1080/p/1045
#include
#include
using namespace std;
long long int solver(int n,int m,vector &strg)
{
if(strg[n]!=0)
{
return strg[n];
}
if(n<=0)
{
return 0;
}
if(n==m)
{
return 2;
}
if(m>n)
{
return 1;
}
long long int ans=solver(n-1,m,strg)+solver(n-m,m,strg);
// cout<<n<<"the ans is " <<ans<<endl;
strg[n]=ans;
return ans;
}
int main(int argc, char const *argv[])
{
int t;
cin>>t;
while (t--)
{
int n,m;
cin>>n>>m;
vector<long long int> strg (1000001,0);
cout<<solver(n,m,strg)<<endl;
}
return 0;
}
i am getting wrong answer even after using dp