Advertisement
rotti321

LostOnYou

Oct 20th, 2017
230
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.90 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4. ifstream f("lostonyou.in");
  5. ofstream g("lostonyou.out");
  6. const int MOD = 666013;
  7. int C[1002][1002],n,c[5],i,j,v,p,t,d,U,D,T,P,pd,pt,pp;
  8. long long sol,y,x;
  9. int main()
  10. {
  11. f>>n>>v;
  12. for(i=0; i<=n; i++)C[i][0]=1;
  13. for(i=1; i<=n; i++)
  14. for(j=1; j<=i; j++)
  15. C[i][j]=(C[i-1][j-1]+C[i-1][j])%MOD;
  16. for(i=1; i<=n; i++)
  17. {
  18. f>>j;
  19. c[j]++;
  20. }
  21. U=c[1];
  22. D=c[2];
  23. T=c[3];
  24. P=c[4];
  25. x=1;
  26. for(;U; U--)
  27. x=(2*x)%MOD;
  28. for(d=0,pd=1; d<=D&&pd<=v; d++,pd*=2)
  29. for(t=0,pt=1; t<=T&&pd*pt<=v; t++,pt*=3)
  30. for(p=0,pp=1; p<=P&&pd*pt*pp<=v; p++,pp*=4)
  31. {
  32. y=1LL*C[D][d]*C[T][t]%MOD;
  33. y=y*C[P][p]%MOD;
  34. sol=(sol+y)%MOD;
  35. }
  36. sol=sol*x%MOD;
  37. sol=(sol+MOD-1)%MOD;
  38. g<<sol;
  39. return 0;
  40. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement