Advertisement
Guest User

Untitled

a guest
Oct 19th, 2017
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.65 KB | None | 0 0
  1. #include <functional>
  2. #include <algorithm>
  3. #include <iostream>
  4. #include <cstring>
  5. #include <cstdlib>
  6. #include <cassert>
  7. #include <sstream>
  8. #include <numeric>
  9. #include <string>
  10. #include <vector>
  11. #include <cstdio>
  12. #include <bitset>
  13. #include <cmath>
  14. #include <ctime>
  15. #include <queue>
  16. #include <stack>
  17. #include <map>
  18. #include <set>
  19.  
  20. using namespace std;
  21.  
  22. #define pb push_back
  23. #define ll long long
  24. #define mp make_pair
  25. #define f first
  26. #define s second
  27. #define pii pair < int, int >
  28. #define pll pair < ll, ll >
  29. #define all(s) s.begin(), s.end()
  30. #define sz(s) (int) s.size()
  31. #define forit(it, s) for(__typeof(s.begin()) it = s.begin(); it != s.end(); it++)
  32. #define vi vector < int >
  33.  
  34. const int inf = (int)1e9;
  35. int mod = 998244353;
  36. int fact[5050];
  37. int invfact[5050];
  38.  
  39. int binpow(int a, int b){
  40. int res = 1;
  41. while(b){
  42. if (b&1)
  43. res = res*1ll*a%mod;
  44. a = a*1ll*a%mod;
  45. b /= 2;
  46. }
  47. return res;
  48. }
  49.  
  50. void precalc(){
  51. fact[0] = 1;
  52. for (int i=1;i<5050;i++) fact[i] = fact[i-1] *1ll* i % mod;
  53.  
  54. for (int i=0;i<5050;i++) {
  55. invfact[i] = binpow(fact[i], mod-2);
  56. }
  57. }
  58.  
  59. int cnk(int n, int k){
  60. if (k > n) return 0;
  61. return fact[n] * 1ll* invfact[k]%mod * invfact[n-k]%mod;
  62. }
  63.  
  64. int calc(int a, int b){
  65. int res = 0;
  66. for (int i=0;i<=a;i++){
  67. res += cnk(a, i) * 1ll * cnk(b, i) % mod * fact[i] %mod;
  68. if (res >= mod) res -= mod;
  69. }
  70. return res;
  71. }
  72.  
  73. int main () {
  74. precalc();
  75. int a, b, c;
  76. scanf("%d%d%d", &a, &b, &c);
  77.  
  78. int ans = calc(a, b) *1ll* calc(b, c) % mod * calc(c, a) % mod;
  79. cout <<ans<<endl;
  80.  
  81. return 0;
  82. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement