a53

mygo

a53
May 24th, 2017
241
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.02 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. #define maxN 1005
  3. #define MOD 666013
  4. using namespace std;
  5. int n,i,j,sum,sol,fq[10];
  6. int fact[maxN],invfact[maxN];
  7. int fastPow(int a,int b)
  8. {
  9. int res=1;
  10. while(b)
  11. {
  12. if(b%2)
  13. res=(1LL*res*a)%MOD;
  14. a=(1LL*a*a)%MOD;
  15. b/=2;
  16. }
  17. return res;
  18. }
  19. inline int invmod(int x)
  20. {
  21. return fastPow(x,MOD-2);
  22. }
  23. int main()
  24. {
  25. ifstream f("mygo.in");
  26. ofstream g("mygo.out");
  27.  
  28. for(i=0;i<10;i++)
  29. f>>fq[i],sum+=fq[i];
  30.  
  31. fact[0]=1;
  32. for(i=1;i<=sum;i++)
  33. fact[i]=(1LL*i*fact[i-1])%MOD;
  34.  
  35. invfact[0]=1;
  36. invfact[sum]=invmod(fact[sum]);
  37. for(i=sum-1;i>=1;i--)
  38. invfact[i]=(1LL*(i+1)*invfact[i+1])%MOD;
  39.  
  40. sum--;
  41. for(i=1;i<10;i++)
  42. if(fq[i])
  43. {
  44. fq[i]--;
  45.  
  46. int add=fact[sum];
  47. for(j=0;j<10;j++)
  48. add=(1LL*add*invfact[fq[j]])%MOD;
  49. sol=(sol+add)%MOD;
  50.  
  51. fq[i]++;
  52. }
  53.  
  54. g<<sol;
  55. return 0;
  56. }
Advertisement
Add Comment
Please, Sign In to add comment