Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define filer() freopen("in.txt","r",stdin)
- #define filew() freopen("out.txt","w",stdout)
- #define SET(a, x) memset((a), (x), sizeof(a))
- #define i64 long long
- #include<iostream>
- #include<stdio.h>
- #include<string.h>
- #include<math.h>
- #include<algorithm>
- #include<queue>
- #include<stack>
- #include<vector>
- #include <map>
- #define INF 1<<29
- #define MAX 1000000ll
- #define MOD 1000000007ll
- using namespace std;
- i64 F[MAX+10];
- i64 inv3(i64 x, i64 M) {
- i64 a = 1, b = x;
- while (b != 1) {
- i64 c = M / b;
- a *= c; a %= M;
- b *= c; b %= M;
- if (b > M/2) { a = M - a; b = M - b; }
- }
- return a;
- }
- i64 ncr(i64 n,i64 r)
- {
- i64 a=F[n];
- i64 b=inv3(F[r],MOD);
- i64 c=inv3(F[n-r],MOD);
- i64 ans=((((a%MOD)*(b%MOD))%MOD)*(c%MOD))%MOD;
- //i64 ans=(a*b*c)%MOD;
- }
- int main()
- {
- int T,cas=0;
- i64 ans,n,k,i,j;
- F[0]=1;
- for(i=1;i<=MAX;i++)
- {
- F[i]=((F[i-1]%MOD)*(i%MOD))%MOD;
- }
- scanf("%d",&T);
- while(T--)
- {
- scanf("%lld%lld",&n,&k);
- ans=ncr(n+k-1,k-1);
- printf("Case %d: %lld\n",++cas,ans);
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement