Advertisement
a53

LOSTonYOU

a53
Oct 1st, 2017
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.59 KB | None | 0 0
  1. #include <fstream>
  2. #define MOD 666013
  3. #define ULL unsigned long long int
  4. using namespace std;
  5. ifstream f("lostonyou.in");
  6. ofstream g("lostonyou.out");
  7. ULL n,p,x,n1,n2,n3,n4;
  8.  
  9. ULL putere(ULL n,ULL p) /// Calculez n^p
  10. {
  11. ULL n_la_p=1ULL;
  12. for(ULL i=1;i<=p;++i)
  13. n_la_p*=n;
  14. return n_la_p;
  15. }
  16.  
  17. int main()
  18. {
  19. f>>n>>p;
  20. for(ULL i=1;i<=n;++i) /// Citesc cele n numere 1,2,3 si 4 si retin cate sunt din fiecare
  21. {
  22. f>>x;
  23. if(x==1)
  24. ++n1; /// n1=numarul de numere 1
  25. if(x==2)
  26. ++n2; /// n2=numarul de numere 2
  27. if(x==3)
  28. ++n3; /// n3=numarul de numere 3
  29. if(x==4)
  30. ++n4; /// n4=numarul de numere 4
  31. }
  32. if(n2) /// Numar cati de 2 (maxim) pot intra in produs
  33. {
  34. ULL nt=2ULL,t=0ULL;
  35. while(nt<p&&t<n2)
  36. nt*=2,++t;
  37. n2=t;
  38. }
  39. if(n3) /// Nmar cati de 3 (maxim) pot intra in produs
  40. {
  41. ULL nt=3ULL,t=0ULL;
  42. while(nt<p&&t<n3)
  43. nt*=3,++t;
  44. n3=t;
  45. }
  46. if(n4) /// Numar cati de 4 (maxim) pot intra in produs
  47. {
  48. ULL nt=4ULL,t=0ULL;
  49. while(nt<p&&t<n4)
  50. nt*=4,++t;
  51. n4=t;
  52. }
  53. ULL nr=0ULL;
  54. for(ULL i=0;i<=n4;++i)
  55. for(ULL j=0;j<=n3;++j)
  56. for(ULL k=0;k<=n2;++k)
  57. if((i||j||k)&&1ULL*putere(4,i)*putere(3,j)*putere(2,k)<p)
  58. ++nr,nr%=MOD; /// ,g<<2<<'^'<<k<<' '<<3<<'^'<<j<<' '<<4<<'^'<<i<<endl
  59. nr*=3,nr%=MOD;
  60. if(n1)
  61. ++nr;
  62. if(nr==MOD)
  63. nr=MOD-1;
  64. g<<nr;
  65. return 0;
  66. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement