Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- #define maxN 1005
- #define MOD 666013
- using namespace std;
- int n,i,j,sum,sol,fq[10];
- int fact[maxN],invfact[maxN];
- int fastPow(int a,int b)
- {
- int res=1;
- while(b)
- {
- if(b%2)
- res=(1LL*res*a)%MOD;
- a=(1LL*a*a)%MOD;
- b/=2;
- }
- return res;
- }
- inline int invmod(int x)
- {
- return fastPow(x,MOD-2);
- }
- int main()
- {
- ifstream f("mygo.in");
- ofstream g("mygo.out");
- for(i=0;i<10;i++)
- f>>fq[i],sum+=fq[i];
- fact[0]=1;
- for(i=1;i<=sum;i++)
- fact[i]=(1LL*i*fact[i-1])%MOD;
- invfact[0]=1;
- invfact[sum]=invmod(fact[sum]);
- for(i=sum-1;i>=1;i--)
- invfact[i]=(1LL*(i+1)*invfact[i+1])%MOD;
- sum--;
- for(i=1;i<10;i++)
- if(fq[i])
- {
- fq[i]--;
- int add=fact[sum];
- for(j=0;j<10;j++)
- add=(1LL*add*invfact[fq[j]])%MOD;
- sol=(sol+add)%MOD;
- fq[i]++;
- }
- g<<sol;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment