Advertisement
farsid

Untitled

Jul 27th, 2012
45
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.13 KB | None | 0 0
  1. #define filer() freopen("in.txt","r",stdin)
  2. #define filew() freopen("out.txt","w",stdout)
  3. #define SET(a, x) memset((a), (x), sizeof(a))
  4. #define i64 long long
  5. #include<iostream>
  6. #include<stdio.h>
  7. #include<string.h>
  8. #include<math.h>
  9. #include<algorithm>
  10. #include<queue>
  11. #include<stack>
  12. #include<vector>
  13. #include <map>
  14. #define INF 1<<29
  15. #define MAX 1000000ll
  16. #define MOD 1000000007ll
  17.  
  18. using namespace std;
  19.  
  20. i64 F[MAX+10];
  21.  
  22. i64 inv3(i64 x, i64 M) {
  23. i64 a = 1, b = x;
  24. while (b != 1) {
  25. i64 c = M / b;
  26. a *= c; a %= M;
  27. b *= c; b %= M;
  28. if (b > M/2) { a = M - a; b = M - b; }
  29. }
  30. return a;
  31. }
  32.  
  33.  
  34.  
  35. i64 ncr(i64 n,i64 r)
  36. {
  37. i64 a=F[n];
  38. i64 b=inv3(F[r],MOD);
  39. i64 c=inv3(F[n-r],MOD);
  40. i64 ans=((((a%MOD)*(b%MOD))%MOD)*(c%MOD))%MOD;
  41. //i64 ans=(a*b*c)%MOD;
  42. }
  43.  
  44. int main()
  45. {
  46. int T,cas=0;
  47. i64 ans,n,k,i,j;
  48. F[0]=1;
  49. for(i=1;i<=MAX;i++)
  50. {
  51. F[i]=((F[i-1]%MOD)*(i%MOD))%MOD;
  52. }
  53.  
  54. scanf("%d",&T);
  55.  
  56. while(T--)
  57. {
  58. scanf("%lld%lld",&n,&k);
  59. ans=ncr(n+k-1,k-1);
  60. printf("Case %d: %lld\n",++cas,ans);
  61. }
  62. return 0;
  63. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement