Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- ifstream f("lostonyou.in");
- ofstream g("lostonyou.out");
- const int MOD = 666013;
- int C[1002][1002],n,c[5],i,j,v,p,t,d,U,D,T,P,pd,pt,pp;
- long long sol,y,x;
- int main()
- {
- f>>n>>v;
- for(i=0; i<=n; i++)C[i][0]=1;
- for(i=1; i<=n; i++)
- for(j=1; j<=i; j++)
- C[i][j]=(C[i-1][j-1]+C[i-1][j])%MOD;
- for(i=1; i<=n; i++)
- {
- f>>j;
- c[j]++;
- }
- U=c[1];
- D=c[2];
- T=c[3];
- P=c[4];
- x=1;
- for(;U; U--)
- x=(2*x)%MOD;
- for(d=0,pd=1; d<=D&&pd<=v; d++,pd*=2)
- for(t=0,pt=1; t<=T&&pd*pt<=v; t++,pt*=3)
- for(p=0,pp=1; p<=P&&pd*pt*pp<=v; p++,pp*=4)
- {
- y=1LL*C[D][d]*C[T][t]%MOD;
- y=y*C[P][p]%MOD;
- sol=(sol+y)%MOD;
- }
- sol=sol*x%MOD;
- sol=(sol+MOD-1)%MOD;
- g<<sol;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement