Fişierul intrare/ieşire:bool.in, bool.outSursăpreONI 2004
AutorAdrian VladuAdăugată de
Timp execuţie pe test0.1 secLimită de memorie65536 kbytes
Scorul tăuN/ADificultatenormalnormalnormalnormalnormal

Vezi solutiile trimise | Statistici

Bool

Haralambie a primit la scoala o tema destul de dificila. El trebuie sa evalueze o expresie logica. Aceasta expresie contine variabile (litere mari ale alfabetului englez de la A la Z), constante (TRUE si FALSE), paranteze rotunde ( si ), si operatorii logici NOT, AND si OR. NOT are prioritatea cea mai mare, OR are prioritatea cea mai mica. Initial toate variabilele au valoarea FALSE. Lui Haralambie ii place sa evalueze expresii, dar variabilele isi mai schimba uneori valoarea si expresia trebuie reevaluata. Speriat din aceasta cauza, a decis sa apeleze la ajutorul vostru!

Dupa cum este mentionat mai sus o expresie logica este definita in unul din modurile urmatoare:

expresieexplicatie
TRUE 
FALSE 
cc - litera mare a alfabetului englez
(e)e - expresie logica
NOT ee - expresie logica
e1 AND e2e1 si e2 - expresii logice
e1 OR e2e1 si e2 - expresii logice

Cerinta

Se da expresia ce trebuie evaluata si modificarile ce apar la valorile variabilelor. Pentru fiecare modificare de variabila trebuie reevaluata expresia si afisat rezultatul (1 pentru adevarat si 0 pentru fals).

Date de Intrare

Pe prima linie a fisierului de intrare bool.in este scrisa expresia logica definita ca mai sus. Pe a doua linie este dat numarul N de modificari ale variabilelor. Pe linia a treia sunt date N caractere intre A si Z, reprezentand variabilele a caror valoare este modificata.

Date de Iesire

Fisierul bool.out va contine o singura linie de lungime N. Pentru fiecare modificare de variabila se va afisa un caracter reprezentand valoarea logica a expresiei: 1 pentru adevarat si 0 pentru fals.

Restrictii si precizari

  • 1 ≤ N ≤ 100
  • 1 ≤ Lungime expresiei ≤ 1.000
  • Toate literele care apar in expresie vor fi majuscule
  • Nu va exista mai mult de un spatiu intre doua caractere din expresie
  • O variabila care are valoarea TRUE isi schimba valoarea in FALSE, iar o variabila FALSE se schimba in TRUE

Exemplu

bool.inbool.out
A AND ((B OR NOT C) OR ((TRUE)))
4
ABCA
1110
Trebuie sa te autentifici pentru a trimite solutii. Click aici

Cum se trimit solutii?

remote content