CLASA A XI-A
ZIUA I
PROBLEMA 2

Un Excel de jucarie (50 puncte)

O foaie de calcul (spreadsheet) este un tablou dreptunghiular de celule rectangulare. Fiecare celula poate contine date sau expresii, care pot fi evaluate obtinându-se date. Liniile din foaia de calcul sunt numerotate, începând cu 0, iar coloanele se denumesc cu litere majuscule ale alfabetului englez (primele 26 de linii), apoi folosind combinatii de litere (AA, AB, etc). O celula poate fi referita specificând coloana si linia corespunzatoare (de exemplu, prima celula, din coltul de N-V, este A0).

O foaie de calcul de jucarie contine maximum 26 de coloane (denumite de la A la Z) si maximum 10 linii (numerotate de la 0 la 9). Fiecare celula poate contine date de tip întreg sau expresii aritmetice în care se folosesc doar operatorii binari +, -, * si /, cu semnificatia de adunare, scadere, înmultire, respectiv împartire întreaga. Operanzii pot fi valori întregi sau referinte de celule.

Problema consta în a evalua, daca este posibil, o foaie de calcul de jucarie data. Prin evaluarea unei foi de calcul întelegem înlocuirea tuturor expresiilor cu valorile lor.

Intrare:
Numele fisierului de intrare este EXCEL.IN.
Fisierul de intrare contine pe prima linie
n (numarul de linii din foaia de calcul) si m (numarul de coloane), separate prin spatiu.

Fisierul contine în continuare n*m linii de date, câte una pentru fiecare celula. Celulele sunt specificate în ordinea crescatoare a liniilor, iar pe fiecare linie în ordinea alfabetica a coloanelor. Pentru fiecare celula este specificat continutul (data sau expresie).

Iesire:
Fisierul de iesire se numeste EXCEL.OUT.
Fisierul de iesire va contine mesajul
EVALUARE IMPOSIBILA sau foaia de calcul evaluata (n linii în ordinea data, fiecare linie continând cele m valori ale celulelor componente, în ordinea data a coloanelor, separate prin spatiu).

Observatii:

  1. Expresiile pot contine paranteze rotunde.
  2. Expresiile nu contin spatii.
  3. Prioritatea operatorilor este cea uzuala.
  4. Datele si valorile absolute ale expresiilor din foaia de calcul de jucarie sunt numere întregi mai mici decât 2.0E+9.
  5. Fiecare expresie contine cel mult 100 de caractere.
  6. Expresiile date în foaia de calcul de jucarie sunt sintactic corecte (conform sintaxei Pascal/C).

Timp de executie: maximum 0.5 secunde per test.

Nota: Testele pentru care fisierul de iesire trebuie sa contina în mod corect EVALUARE IMPOSIBILA vor primi punctajul corespunzator daca si numai daca testul asociat acestuia si care admite evaluare este si el corect rezolvat.

Exemplul 1
Fisier de intrare:
1 2
1+B0
2+A0

Fisier de iesire:
EVALUARE IMPOSIBILA

Exemplul 2
Fisier intrare:
2 2
1
A1+A0
5
B0*3

Fisier de iesire:
1 6
5 18