Atenţie! Aceasta este o versiune veche a paginii, scrisă la 2020-05-27 09:29:39.
Revizia anterioară   Revizia următoare  

 

Fişierul intrare/ieşire:heist.in, heist.outSursăJunior Challenge 2020
AutorAlexandru Enache, Alexandru PetrescuAdăugată deJuniorChallenge2020Comisia JuniorChallenge2020
Timp execuţie pe test0.04 secLimită de memorie524288 kbytes
Scorul tăuN/ADificultateN/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.inheist.out
This is some
text written on
multiple lines.
This is another
text written on
multiple lines.

Explicaţie

...

Trebuie sa te autentifici pentru a trimite solutii. Click aici

Cum se trimit solutii?