Fişierul intrare/ieşire:expresie3.in, expresie3.outSursăONI 2011 - clasa a 10-a
AutorStelian CiureaAdăugată deSpiderManSimoiu Robert SpiderMan
Timp execuţie pe test0.5 secLimită de memorie6144 kbytes
Scorul tăuN/ADificultateN/A

Vezi solutiile trimise | Statistici

Expresie3

Se consideră o expresie, care poate să conţină:

  • operanzi, care sunt litere mici ale alfabetului englez;
  • paranteze rotunde;
  • operatorul / care simbolizează împărţirea;
  • operatorul * care simbolizează înmulţirea.

Regulile după care se evaluează o astfel de expresie sunt cele din matematică.
Ne propunem să rescriem această expresie sub forma unui produs în care factorii pot să apară la puteri pozitive sau negative fără să mai folosim parantezele rotunde şi în care folosim notaţia xy pentru x*y.
Astfel, a/b este echivalentă cu a1b-1, a*(c/b) este echivalentă cu a1c1b-1, a/(b*c)*(a*b/c) este echivalentă cu a2c-2

Cerinţă

Cunoscând expresia iniţială să se determine expresia echivalentă scrisă sub formă de produs.

Date de intrare

Pe prima linie a fişierului expresie3.in se află un şir de caractere ce reprezintă expresia dată.

Date de ieşire

Fiecare linie a fişierului expresie3.out va conţine un operand urmat de exact un spaţiu şi de un număr întreg ce reprezintă puterea la care acest operand apare în expresia scrisă sub formă de produs echivalentă. Operanzii vor apărea în fişier în ordine alfabetică, iar puterile pozitive sau nule nu vor fi precedate de semn.

Restricţii

  • Expresia dată are cel mult 20 000 de caractere
  • Expresia dată este corectă şi nu conţine caractere spaţiu
  • 10% dintre teste vor conţine doar operatorul *

Exemplu

expresie3.inexpresie3.out
a/ba 1
b -1
a/(b*c)*(a*b/c)a 2
b 0
c -2
(p/x)/((b/h/(x/x)))/(p/(b/(x/(h/(p)))))b 0
h 2
p -1
x -2
Trebuie sa te autentifici pentru a trimite solutii. Click aici

Cum se trimit solutii?

remote content