Advertisement
Kaidul

LightOj - 1067

Apr 20th, 2013
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.99 KB | None | 0 0
  1. #include <algorithm>
  2. #include <bitset>
  3. #include <cctype>
  4. #include <cmath>
  5. #include <complex>
  6. #include <cstdio>
  7. #include <cstdlib>
  8. #include <cstring>
  9. #include <ctime>
  10. #include <deque>
  11. #include <fstream>
  12. #include <iostream>
  13. #include <list>
  14. #include <map>
  15. #include <memory>
  16. #include <queue>
  17. #include <set>
  18. #include <sstream>
  19. #include <stack>
  20. #include <string>
  21. #include <utility>
  22. #include <vector>
  23. #include <iomanip>
  24. using namespace std;
  25. /*** typedef ***/
  26. #define MEMSET_INF 127
  27. #define MEMSET_HALF_INF 63
  28. #define stream istringstream
  29. #define rep(i,n) for(__typeof(n) i=0; i<(n); i++)
  30. #define repl(i,n) for(__typeof(n) i=1; i<=(n); i++)
  31. #define FOR(i,a,b) for(__typeof(b) i=(a); i<=(b); i++)
  32. #define INF (1<<30)
  33. #define PI acos(-1.0)
  34. #define pb push_back
  35. #define ppb pop_back
  36. #define all(x) x.begin(),x.end()
  37. #define mem(x,y) memset(x,y,sizeof(x))
  38. typedef long long i64;
  39. typedef unsigned long long ui64;
  40. /** function **/
  41. #define SDi(x) sf("%d",&x)
  42. #define SDl(x) sf("%lld",&x)
  43. #define SDs(x) sf("%s",x)
  44. #define SD2(x,y) sf("%d%d",&x,&y)
  45. #define SD3(x,y,z) sf("%d%d%d",&x,&y,&z)
  46. #define pf printf
  47. #define sf scanf
  48. #define READ(f) freopen(f, "r", stdin)
  49.  
  50. #define Max 1000010
  51. #define Mod 1000003
  52.  
  53. i64 bigmod(i64 b, i64 p, i64 m){
  54.     i64 r=1;
  55.     i64 pow = b % m;
  56.     while (p > 0) {
  57.         if (p % 2 == 1) r = (r * pow) % m;
  58.         pow = (pow * pow) % m;
  59.         p >>= 1;
  60.     }
  61.     return r;
  62. }
  63.  
  64. i64 cache[Max];
  65.  
  66. i64 factorial(int n) {
  67.     if(cache[n] != -1) return cache[n];
  68.     if(n == 0 || n == 1) return cache[n] = 1;
  69.     return cache[n] = (factorial(n - 1) % Mod * n % Mod) % Mod;
  70. }
  71.  
  72. int main() {
  73.     READ("in.txt");
  74.     int tcase, caseNo = 1, n, r, save;
  75.     i64 sum;
  76.     mem(cache, -1);
  77.     SDi(tcase);
  78.     while(tcase--) {
  79.         SD2(n, r);
  80.         save = r, sum = 1;
  81.         sum = ((factorial(n) % Mod)  * bigmod(factorial(r) * factorial(n - r), Mod - 2, Mod)) % Mod;
  82.         pf("Case %d: %lld\n", caseNo, sum);
  83.         caseNo++;
  84.     }
  85.     return 0;
  86. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement