Petrică, pasionat de algoritmi și provocări logice, are un cod care reprezintă parola de acces la o bază de date foarte importantă de probleme de algoritmică.
Pentru că știe că ești un programator iscusit, acesta dorește să îți permită accesul la baza de date dacă poți afla codul secret, rezolvând o ghicitoare de la acesta.
Codul secret este reprezentat de un șir de numere întregi de lungime , indexat de la . Petrică îți comunică restricții pe care acest șir trebuie să le satisfacă simultan, fiecare dintre acestea având forma , reprezentând faptul că elementele din șir cu indicii în intervalul au proprietatea că valoarea obținută aplicând operatorul binar |
("or") între valorile acestora este egală cu .
Cerință
Petrică este totuși viclean și s-ar putea câteodată să îți comunice restricții care să nu permită toate simultan existența șirului. Tot ce vrea acesta de la tine este să îi comunici dacă poate exista un șir cu proprietățile date și acesta îți va spune în schimb care este codul bun.
Date de intrare
Prima linie a fișierului de intrare conține un număr întreg , reprezentând numărul de scenarii de test care trebuie rezolvate.
Prima linie a fiecărui test conține numere și , reprezentând lungimea șirului secret și numărul de restricții pe care acesta trebuie să le respecte.
Fiecare linie dintre următoarele linii din test conține câte 3 numere , , , reprezentând capetele intervalului de indici pe care se aplică restricția, respectiv valoarea acesteia.
Date de ieșire
Programul trebuie să afișeze pe o singură linie, fără spații, un șir de lungime format din valorile 0
sau 1
, unde elementul de pe poziția este 1
dacă scenariul de test cu numărul din input admite un cod posibil sau 0
în caz contrar.
Restricții și precizări
- Suma valorilor din toate testele dintr-un fișier de input va fi mereu mai mică sau egală decât .
- Suma valorilor din toate testele dintr-un fișier de input va fi mereu mai mică sau egală decât .
# | Punctaj | Restricții |
---|---|---|
1 | 10 | , , , |
2 | 20 | Suma valorilor din toate scenariile este cel mult . |
3 | 20 | Suma valorilor din toate scenariile este cel mult . |
4 | 20 | |
5 | 20 | |
6 | 10 | Fără restricții suplimentare |
Exemplu
codulbun.in
2
5 2
1 3 3
2 5 0
4 2
1 3 1
2 3 4
codulbun.out
10
Explicație
Pentru primul test, un șir care respectă restricțiile date este .
Pentru al doilea test, se poate demonstra că nu există o soluție care să satisfacă toate restricțiile simultan.