Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <fstream>
- #define MOD 666013
- #define ULL unsigned long long int
- using namespace std;
- ifstream f("lostonyou.in");
- ofstream g("lostonyou.out");
- ULL n,p,x,n1,n2,n3,n4;
- ULL putere(ULL n,ULL p) /// Calculez n^p
- {
- ULL n_la_p=1ULL;
- for(ULL i=1;i<=p;++i)
- n_la_p*=n;
- return n_la_p;
- }
- int main()
- {
- f>>n>>p;
- for(ULL i=1;i<=n;++i) /// Citesc cele n numere 1,2,3 si 4 si retin cate sunt din fiecare
- {
- f>>x;
- if(x==1)
- ++n1; /// n1=numarul de numere 1
- if(x==2)
- ++n2; /// n2=numarul de numere 2
- if(x==3)
- ++n3; /// n3=numarul de numere 3
- if(x==4)
- ++n4; /// n4=numarul de numere 4
- }
- if(n2) /// Numar cati de 2 (maxim) pot intra in produs
- {
- ULL nt=2ULL,t=0ULL;
- while(nt<p&&t<n2)
- nt*=2,++t;
- n2=t;
- }
- if(n3) /// Nmar cati de 3 (maxim) pot intra in produs
- {
- ULL nt=3ULL,t=0ULL;
- while(nt<p&&t<n3)
- nt*=3,++t;
- n3=t;
- }
- if(n4) /// Numar cati de 4 (maxim) pot intra in produs
- {
- ULL nt=4ULL,t=0ULL;
- while(nt<p&&t<n4)
- nt*=4,++t;
- n4=t;
- }
- ULL nr=0ULL;
- for(ULL i=0;i<=n4;++i)
- for(ULL j=0;j<=n3;++j)
- for(ULL k=0;k<=n2;++k)
- if((i||j||k)&&1ULL*putere(4,i)*putere(3,j)*putere(2,k)<p)
- ++nr,nr%=MOD; /// ,g<<2<<'^'<<k<<' '<<3<<'^'<<j<<' '<<4<<'^'<<i<<endl
- nr*=3,nr%=MOD;
- if(n1)
- ++nr;
- if(nr==MOD)
- nr=MOD-1;
- g<<nr;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement