For this Question: Saloni loves vectors. She considers a vector awesome if it follows the following conditions:
-> Each element is greater than or equal to 1.
-> Number of elements in the vector is equal to K.
-> Sum of all the elements in the vector is equal to N.
-> The elements in the vector are in <b>strictly decreasing</b> order.

As Saloni is too moody, the values of N and K changes every moment for her. So, you will be given Q queries, each query contains two integers N and K. Find the number of distinct awesome vectors corresponding to each query. Report the answers modulo 1000000007.The first line of input contains an integer Q.
The next Q lines contain two integers N and K.

Constraints
1 <= Q <= 10000
1 <= N, K <= 50000For each query, print the number of awesome permutations modulo 1000000007.Sample Input
4
6 1
6 2
6 3
6 4

Sample Output
1
2
1
0

Explanation:
For N=6 and K=1, the only awesome vector is [6].
For N=6 and K=2, the awesome vectors are [4, 2] and [5, 1]. Note, [3, 3] is not an awesome vector as it violates fourth condition.
For N=6 and K=3, the only awesome vector is [3, 2, 1].
For N=6 and K=4, we can show that there is no awesome vector.
, I have written this Solution Code: #include<bits/stdc++.h>
using namespace std;
#define ll long long
#define VV vector
#define pb push_back
#define bitc  __builtin_popcountll
#define m_p make_pair
#define infi 1e18+1
#define eps 0.000000000001
#define fastio ios_base::sync_with_stdio(false);cin.tie(NULL);
string char_to_str(char c){string tem(1,c);return tem;}
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
template<class T>//usage rand<long long>()
T rand() {
    return uniform_int_distribution<T>()(rng);
}
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace __gnu_pbds;
 
typedef tree<int, null_type, less<int>, rb_tree_tag, tree_order_statistics_node_update> oset;
// string to integer stoi()
// string to long long stoll()
// string.substr(position,length);
// integer to string to_string();
 
//////////////
auto clk=clock();
#define all(x) x.begin(),x.end()
#define S second
#define F first
#define sz(x) ((long long)x.size())
// #define int long long  
#define f80 __float128
#define pii pair<int,int>
/////////////
int dp[50001][425];
int pr[425][425];
signed main()
{
	fastio;
	#ifdef ANIKET_GOYAL
		freopen("inputf.in","r",stdin);
		freopen("outputf.in","w",stdout);
	#endif
	dp[0][0]=1;
	pr[0][0]=1;
	int mo=1000000007;
	for(int i=1;i<=50000;++i)
	{
		for(int j=1;j<425;++j)
		{
			dp[i][j]=pr[i%j][j-1];
			// if(i<10&&j<10)
				// cout<<dp[i][j]<<" ";
		}
		for(int j=1;j<425;++j)
			pr[i%(j+1)][j]=(pr[i%(j+1)][j]+dp[i][j])%mo;
		// cout<<"\n";
	}
	int q;
	cin>>q;
	while(q){
		--q;
		int n,k;
		cin>>n>>k;
		if(k>=425)
		{
			cout<<"0\n";
		}
		else
			cout<<dp[n][k]<<"\n";
	}
	#ifdef ANIKET_GOYAL
		cout<<endl<<endl<<endl<<endl<<"Time elapsed: "<<(double)(clock()-clk)/CLOCKS_PER_SEC<<endl;
	#endif
}, In this Programming Language: C++, Now tell me if this Code is compilable or not?