Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- const int MOD = 1e9 + 7;
- const int N = 2000012;
- long long fact[N], invFact[N];
- void pre(){
- fact[0] = invFact[0] = invFact[1] = 1;
- for(int i = 1 ; i < N ; i++)
- fact[i] = (fact[i-1] * i) % MOD;
- for(int i = 2 ; i < N ; i++)
- invFact[i] = (MOD - MOD / i) * invFact[MOD % i] % MOD;
- for(int i = 1; i < N ; i++)
- invFact[i] = (invFact[i-1] * invFact[i]) % MOD;
- }
- long long nCr(long long n, long long r){
- return ((( fact[n] * invFact[r] ) % MOD) * invFact[n-r]) % MOD;
- }
- int main()
- {
- pre();
- long long t,n,k;
- scanf("%lld",&t);
- while(t--) {
- scanf("%lld%lld",&n,&k);
- printf("%lld\n",(nCr(n,k)));
- }
- return 0;
- }
Add Comment
Please, Sign In to add comment