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 pentru .
Astfel, este echivalentă cu
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 expresie.in
se află un şir de caractere ce reprezintă expresia dată.
Date de ieșire
Fiecare linie a fişierului expresie.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 și precizări
- Expresia dată are cel mult de caractere
- Expresia dată este corectă şi nu conţine caractere spaţiu
- dintre teste vor conţine doar operatorul
*
.
Exemplul 1
expresie.in
a/b
expresie.out
a 1
b -1
Exemplul 2
expresie.in
a/(b*c)*(a*b/c)
expresie.out
a 2
b 0
c -2
Exemplul 3
expresie.in
(p/x)/((b/h/(x/x)))/(p/(b/(x/(h/(p)))))
expresie.out
b 0
h 2
p -1
x -2