rez

Time limit: 0.1s Memory limit: 8MB Input: rez.in Output: rez.out

Gigel este electronist amator. El afirmă că a inventat o nouă componentă electronică denumită reziston. În mod ciudat totuşi rezistonii au nişte proprietăţi care nouă ne sună foarte cunoscut:

  1. Orice reziston este caracterizat printr-o mărime fizică numită rezistonţă. Aceasta poate avea ca valori numai numere naturale.
  2. Rezistonii pot fi legaţi între ei în serie sau în paralel, formând astfel circuite.
  3. Fie doi rezistoni având rezistonţele R1R_1, respectiv R2R_2. Legarea în serie a rezistonilor se realizează astfel:

Rezistonţa acestui circuit va fi R1R_1 + R2R_2.
4. Legarea celor doi rezistoni în paralel se realizează astfel:

Rezistonţa acestui circuit va fi R1R2R1+R2\frac{R_1 \cdot R_2}{R_1 + R_2}. Fiindcă rezistonţele pot fi numai numere naturale, împărţirea este întreagă (adică rezultatul este câtul împărţirii întregi a lui (R1R2R_1 \cdot R_2) la (R1+R2R_1 + R_2)).
5. Prin legarea oricâtor rezistoni în serie şi în paralel se obţin circuite. Circuitele pot fi legate în serie şi/sau în paralel după aceleaşi reguli. Rezistonţa unui circuit se calculează aplicând regulile de mai sus.

Un circuit va fi codificat printr-un şir de caractere construit după următoarele reguli:

  1. Dacă circuitul CC este format dintr-un singur reziston şi acesta are rezistonţa de valoare xx, atunci codificarea circuitului CC este RxR_x. Rezistonţa circuitului CC va fi xx.
  2. Dacă circuitul CC este obţinut prin legarea în serie a două sau mai multe circuite, codificate C1C_1, C2C_2, \dots, CkC_k, atunci codificarea circuitului CC se obţine concatenând în ordine codificările circuitelor C1C_1, C2C_2, \dots, CkC_k. Rezistonţa circuitului CC se obţine prin însumarea rezistonţelor circuitelor C1C_1, C2C_2, \dots, CkC_k.
  3. Dacă circuitul CC este obţinut prin legarea în paralel a două sau mai multe circuite, atunci codificarea circuitului CC se obţine încadrând între paranteze rotunde codificările circuitelor din care este format şi separând aceste codificări prin virgulă: (C1C_1, C2C_2, \dots, CkC_k), k>1k > 1. Rezistonţa circuitului CC este egală cu câtul împărţirii produsului dintre rezistonţele C1C_1, C2C_2, \dots, CkC_k şi suma rezistonţelor circuitelor C1C_1, C2C_2, \dots, CkC_k.

Cerinţă

Scrieţi un program care să determine rezistonţa unui circuit.

Date de intrare

Fişierul de intrare rez.in conţine pe prima linie un şir de caractere care reprezintă codificarea unui circuit conform regulilor de mai sus.

Date de ieşire

Fişierul de ieşire rez.out conţine o singură linie pe care este scrisă rezistonţa circuitului specificat în fişierul de intrare.

Restricții și precizări

  • 00 < lungimea codificării unui circuit 1 000\leq 1 \ 000
  • 00 < rezistonţa oricărui reziston < 100100
  • 00 < rezistonţa oricărui circuit < 2 000 000 0002 \ 000 \ 000 \ 000 (două miliarde)
  • Şirul prin care se codifică un circuit nu conţine spaţii.
  • Pentru datele de test nu se vor obţine împărţiri la 00.

Exemplul 1

rez.in

R12

rez.out

12

Exemplul 2

rez.in

R42R33R3

rez.out

78

Exemplul 3

rez.in

R2(R5,R69,R12)R80

rez.out

130

Exemplul 4

rez.in

(R5,R3(R12,R4),R3)

rez.out

6

Log in or sign up to be able to send submissions!