Revizia anterioară Revizia următoare
Fişierul intrare/ieşire: | heist.in, heist.out | Sursă | Junior Challenge 2020 |
Autor | Alexandru Enache, Alexandru Petrescu | Adăugată de | |
Timp execuţie pe test | 0.04 sec | Limită de memorie | 524288 kbytes |
Scorul tău | N/A | Dificultate | N/A |
Vezi solutiile trimise | Statistici
Heist
Ramas fara bani, Jimmy a decis ca e timpul sa recurga la ultima solutie, jefuirea unei banci. Dupa ce el a facut partea grea, adica sa ameninte oamenii din banca cu un pistol de jucarie intr-un mod convingator, Jimmy a ajuns la seif. Acum el va roaga sa il ajutati cu deschiderea acestuia.
Seiful are inscriptionat pe el un sir de 2N biti. Pentru a-l debloca trebuie sa gasiti o expresie folosindu-va de N variabile de tip bool, expresie care sa contina (de oricate ori) doar:
- aceste variabile
- operatorul ~ (not) (cu prioritate mare)
- paranteze deschise si inchise (cu prioritate uriasa)
- operatorul ^ (xor) (cu prioritate mica)
Daca prin concatenanrea rezultatelor expresiei pentru fiecare din configuratiile de 0 si 1 ale fiecarei variabile, in ordine sistematica (verifica exemplul pentru o explicatie mai detaliata) este exact sirul inscriptionat pe seif, atunci Jimmy va deveni un om foarte bogat.
Date de intrare
Fişierul de intrare heist.in va contine pe prima linie numarul N cu semnificatia din enunt.
Pe urmatoarea linie se va afla sirul de 2N biti.
Date de ieşire
În fişierul de ieşire heist.out se va afla numarul S reprezentand lungimea expresiei gasite, urmat, pe linia urmatoare, de expresie.
Restricţii
- 1 ≤ N ≤ 20
- 1 ≤ S ≤ 100
- Variabilele din expresie se vor scrie ca N litere mici incepand in ordine crescatoare de la litera a
Exemplu
heist.in | heist.out |
---|---|
This is some text written on multiple lines. | This is another text written on multiple lines. |
Explicaţie
...