.campion
conectare | înregistrare | căutare
Pagina principală » Probleme » rez

ultima problemă
grupă: mică
sursă: OMI 2016
ultimul articol
autor: Prof. Radu Vişinescu
ultimul software
autor: Prof. Emanuela Cerchez
rez


Timp maxim de execuţie / test:
0.1s
Memorie totala disponibilă / stivă:
16MB / 1MB

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 R1, respectiv R2. Legarea în serie a rezistonilor se realizează astfel:



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



Rezistonţa acestui circuit va fi (R1*R2)/(R1+R2). Fiindcă rezistonţele pot fi numai numere naturale, împărţirea este întreagă (adică rezultatul este câtul împărţirii întregi a lui (R1*R2) la (R1+R2)).
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:
a. Dacă circuitul C este format dintr-un singur reziston şi acesta are rezistonţa de valoare x, atunci codificarea circuitului C este Rx. Rezistonţa circuitului C va fi x.
b. Dacă circuitul C este obţinut prin legarea în serie a două sau mai multe circuite, codificate C1, C2, ..., Ck, atunci codificarea circuitului C se obţine concatenând în ordine codificările circuitelor C1C2...Ck. Rezistonţa circuitului C se obţine prin însumarea rezistonţelor circuitelor C1, C2, ..., Ck.
c. Dacă circuitul C este obţinut prin legarea în paralel a două sau mai multe circuite, atunci codificarea circuitului C se obţine încadrând între paranteze rotunde codificările circuitelor din care este format şi separând aceste codificări prin virgulă: (C1, C2, ..., Ck), k>1. Rezistonţa circuitului C este egală cu câtul împărţirii produsului dintre rezistonţele C1, C2, ..., Ck şi suma rezistonţelor circuitelor C1, C2, ..., Ck.

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

0 < lungimea codificării unui circuit <= 1000
0 < rezistonţa oricărui reziston < 100
0 < rezistonţa oricărui circuit < 2000000000 (două miliarde)
Şirul prin care se codifică un circuit nu conţine spaţii.

Exemple

rez.inrez.out
R42R33R3 78
R2(R5,R69,R12)R80 130
(R5,R3(R12,R4),R3) 6

autor: Prof. Emanuela Cerchez
propunător: Prof. Emanuela Cerchez
Liceul de Informatică ″Grigore Moisil″
emanuela.cerchez@gmail.com
Articole recomandate
Probleme recomandate
De la ONI 2004: cuvinte1, gaina, materom, puncte3, sortari, base3, coach, color, magic5, patrate6, turnuri, invsort, peri, trans, politie, sea, poligon3, sir7, poligon2, logic, coduri, snipers, sablon1, submdisj, v, jetoane, prodmax, printesa, palindrom, reziston
De acelaşi autor: celule, scp, vedete, film, ab, supertri, inginer, camp, sl, detinut, simetric, egal, gropi, ruleta, carti, tgv, uscat, afise, dezbateri, bunici, rv, onu, nspecial, secvop, cadou, chimie, reteta, piticot, petrol, checkin, teanc, index, teren, pizza, ecran, drum, text, lbd, aven, spam, pluricex, tren2, gray, pasi, mgo, joc, anagrame, vecini, criptmat, maxim, cutie, party, friends, net, sablon, hd, pc, sir2, aztec, scara, nr, robot2, sah, formule, ed, bilete, hanoig, flood, matrice3, erdos, grup, cd, kfactor, np, cuc, radio, honest, ref, nr01, scor2, convert, auto2, compress, politics, pm, playlist, barbie, firma1, submatrix, ham, pizza1, exam, ants, teatru1, cifre1, bile1, caini, secvreg, pasune, remi, m01, sir23, tren1, joc5, pachete, aedaro, windows, renju, latime, mere1, piloti, peste, pitici, sirag1, stive, turn1, carti1, program1, spioni, kgb, lift, apel, lex, oras, homeless, subsir, dist, harta1, adevar, joc10, bare, zapezi, masina2, perechi1, raft, joc11, joc12, ferma, fni, tunel, lover, pepsi, transport, avion, monkey, premii1, garaj, carti2, tv, pact, fat, cafea, echipe1, secvente, petrom, peg, scara1, lant, ecuatii, stiva, bile4, jungla, rj, poli, text1, compus1, politie, anag, codul, coment, muzeu, seti, basm, timer, secvsir, dp, placa, prod3, bursa, submdisj, sotron1, fazan, secvpar, joker, lego, medalii, cfr, antipatie, figura, links, segm, colorare, brazi, mobil, distsir, guess, greiere, pestera, conferinta, chei, ny, nx, ghinion, sumb, drenaj, telecomanda, grupuri, mahjong, rotund, viena, sport2, cos, monoton, micro, valet, nr0, maxviz, anagramabil, nrpal, lista, dame, consiliu, adprod, arme, deal, prodnr, compar, latin, interviu, vintage, prize, nrdiv, arrows, tdrept, agenda, reziston, vot2, tema, smiley, relatii, ech, scadere, nebuni, castig, expand, wb, prime2, virgule, b210
Despre şiruri de caractere: scp, ab, sl, nrcuv, rv, kpal, chimie, reteta, replace, grad, index, cod, text, decript, spam, complex, cifre, anagrame, balbe, criptmat, mesaj, maxim, astre, sablon, formule, ed, balls, vocale, prop, bacan, novel, bitslang, text2, ref, scor2, convert, cod2, compress, pstring, sub, rima, program1, sms, circular, randuri, cezar, bifo, joc9, pal, bare, joc12, fractie, cod3, tunel, csir, top, ratina, cifru1, limbaj, adun, ecuatii, dir, paritate, virus, sir6, mesaj2, text1, sirul, ogorul, sablon1, anag, sir8, seti, secvsir, dp, cuvant, strings, antipatie, fractie1, links, ordonare, text3, concat, codif, cheie, alfabetar, cuvinte2, comp, litere, mxl, mesaj3, expresie2, grad2, antic, zuma, expeval, combcuv, lgdrum, subtitrare, compresie, zigzag, azeval, fraze, subsecvente, showroom, rebus1, agenda, opmult, betisoare, reziston, clase, vot2, ecp, smiley, charlie, cript, scadere, spioni1, sablon3, expand, culori3, virgule
Despre recursivitate: tren, mere, chimie, sarpe, soldati, formule, infinit, compress, ploaia, cartoane, sub, metro, windows, lacuri, apel, maxq, pav, joc11, paianjen, suma2, monkey, csir, lsort, imagine, dir, desert, echitabil, logic, gradina, links, dreptunghiuri, expresie1, cumpanit, reziston, antitero, sablon3
Software recomandat
Chestionare recomandate
surse trimise | ajutor