10910

Top Down:

#include <iostream>
#include <cstdio>
#include <vector>
#include <cstdlib>

#define INF 1000
#define ll long long

using namespace std;

ll res[75][75];
int N,T,P;

ll dp(int cnt,int rem)
{
	if(cnt==1 || rem==0)
	return 1;
	if(res[cnt][rem]!=-1)
	return res[cnt][rem];
	ll r =0;
	for(int i=0;i<=rem;i++)
	{
		r+= dp(cnt-1,rem-i);
	}

	res[cnt][rem]=r;

	return res[cnt][rem];
}

int main()
{
	int t;
	cin>>t;

	while(t--)
	{
		cin>>N>>T>>P;
		for(int i=0;i<75;i++)
			for(int j=0;j<75;j++)
				res[i][j]=-1;
		cout<<dp(N,T-N*P)<<"\n";
	}

	return 0;
}

 

Leave a Reply

Your email address will not be published. Required fields are marked *