Cosmin se plictisea la ora de limba și literatura română, când domnul profesor le-a spus elevilor faptul că în opera „Povestea lui Harap-Alb” există un personaj șugubăț. În acel moment, Cosmin și-a adus aminte de o problemă șugubeață pe care nu știe să o rezolve. În schimb, dacă îl veți ajuta să rezolve problema, vă va trimite prin poștă un spiriduș șugubăț, care are o vioară și un arcuș. Astfel, Cosmin va înțelege felul în care se rezolvă problema, iar voi vă veți bucura de muzică armonioasă.
Cerință
Se dau două numere, și , urmate de un șir de numere naturale nenule, indexat de la la . Se va construi un nou șir , unde fiecare număr () ia cea mai mare valoare a celui mai mare divizor comun pe care îl are cu un alt număr din șirul . Să se determine numărul de subsecvențe din șirul care au suma "sau" pe biți mai mare sau egală cu numărul .
O subsecvență din șirul este o înșiruire de elemente de pe poziții diferite, consecutive.
Suma "sau" pe biți a unei subsecvențe este definită ca , unde semnifică operatorul "sau" pe biți.
Date de intrare
Pe prima linie se vor găsi numerele naturale și , iar pe a doua linie se vor găsi cele numere naturale ale șirului . Numerele aflate pe aceeași linie sunt separate prin câte un spațiu.
Date de ieșire
Se va afișa un singur număr ce reprezintă numărul de subsecvențe cu proprietatea cerută.
Restricții și precizări
- ;
- ;
- .
# | Punctaj | Restricții |
---|---|---|
1 | 22 | |
2 | 31 | |
3 | 47 | Fără alte restricții suplimentare |
Observație
Datorită datelor de intrare foarte mari, se vor folosi instrucțiunile următoare la începutul funcției main()
în programul C++:
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
Exemplu
stdin
5 3
17 2 9 12 2
stdout
12
Explicație
După ce fiecare număr () ia cea mai mare valoare a celui mai mare divizor comun pe care îl are cu un alt număr din șirul , șirul are valorile . În acest nou șir există secvențe care au suma "sau" pe biți mai mare sau egală cu .