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

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


Timp maxim de executie/test:
0.7 secunde
Memorie totala disponibila/stiva:
16 MB/1 MB

Pentru a construi expresii matematice, folosim in practica trei tipuri de paranteze: "(" si ")", "[" si "]", "{" si "}". Un sir de caractere (format doar din cele 6 paranteze de mai sus) este corect parantezat daca si numai daca parantezele sunt imbricate corect si, in plus:
- intre oricare doua paranteze rotunde aflate in corespondenta nu apar paranteze patrate sau acolade;
- intre oricare doua paranteze patrate aflate in corespondenta nu apar acolade.

Pentru rezolvitorii cu inclinatii matematice (ceilalti pot sari cu incredere peste aceasta descriere matematica plictisitoare), putem reformula conditia de parantezare corecta astfel: Fie s un sir de caractere format doar din cele 6 paranteze de mai sus. Notam cu a[i][c] numarul de caractere c aflate in prefixul de lungime i al lui s. s este o parantezare corecta daca si numai daca pentru orice 1<=i<=N:
- a[i]['('] - a[i][')'] >= 0 si a[i]['['] - a[i][']'] >= 0 si a[i]['{'] - a[i]['}'] >= 0
- (a[i]['('] - a[i][')'] > 0) ==> ((a[i]['['] - a[i][']'] = 0) si (a[i]['{'] - a[i]['}'] = 0))
- (a[i]['['] - a[i][']'] > 0) ==> (a[i]['{'] - a[i]['}'] = 0)

Un exemplu de sir corect parantezat este "[[]()]{}". Sirul "())(" nu este parantezat corect deoarece parantezele nu sunt imbricate corect. Sirul "([])" nu este parantezat corect deoarece [] apare in interiorul unor paranteze rotunde.

Cerinta
Sa se determine cate siruri de parantezari corecte de lungime N exista.

Date de intrare
Pe prima linie a fisierului parent.in se gaseste numarul natural N.

Date de iesire
Pe singura linie a fisierului parent.out afisati numarul calculat, modulo 9311.

Restrictii si precizari
2 <= N <= 5000, N par

Exemplu

parent.in

parent.out

parent.in

parent.out

2

3

4

15

 

stud. Stefan Ciobaca
ENs Cachan, DPT Infomatique
stefan.ciobaca@gmail.com

propunător: Prof. Emanuela Cerchez
emanuela.cerchez@gmail.com
Articole recomandate
Probleme recomandate
De la .campion 2007: perechi, teanc, index, light, copaci, teren, pizza, grupe, cod, ecran, drum, soldati, factura, palma, decript, lbd, aven, cs, h, trenuri, sort, spam, complex, holo, tren2, gray, siruri, arce, pasi, cifre, mgo, firma, joc, cartonase, vikingi, anagrame, balbe, vecini, balaur, tribile, conflicte, criptmat, mesaj, maxim, magic3, desen, plimbare, cutie, patrate, party, vagoane, robot, astre, trains, numere2, friends, tricouri, furtuna, net, baby, scaune, 3d, axa, bile2, vmem, pahare, termen, sablon, zapada, cuvinte, excursie, hd, pajura, pc, sir, cadere, pioni
De acelaşi autor: program, dotnet, comb, subperm, newcomp, tric, cladiri, bsir, logic
Despre combinatorică: manevre, carti, bonuri, test, cub, nspecial, circuit, numere, cs, pluricex, gray, siruri, anagrame, party, net, scaune, sir, monede, aztec, nrcuv2, perm, race, hanoig, red, grup, hperm, depou, grazing, pm, reteta2, playlist, young, pizza1, albine, caramele, teatru1, tub, robot1, sir23, soldati1, concurs1, comb, expresii, arbnr, cod1, munte, shgraf, desc, lex, munte1, maxperm, role, avere, vizibil, prime1, hexa, patrat, carti2, puncte2, pact, aranjari, numere5, borg, acolor, sg1, perfect, cifru2, bile4, pviz, culmi1, piramida1, trapez, frunze, sir7, logic, coduri, jetoane, kperms, tablite, secvpar, lego, permutari, binperm, multiplu1, operatii, fotbal, kbiti, jucarii, bradut, expozitie, parbit, kmax, petrecere, tango, rege, cd1, cifru3, kcons, bubblesort, hawaii, randomizare, kdist, reuniune, echipa, ghinion, cavaleri, camera616, covor, subm, grupuri, pavari, asfalt, adunscad, rotund, sport2, arbore1, lant1, module, nrperm, oneton, nrpomi, cover1, nrpal, probleme, optim, poly, vot1, sudoku1, flori2, xnumere, showroom, cntgcd, subsets, nkd, nrgraf, spion1, puteri, stiva1, permtr, relatii, 2sah, matcnt, magic7, nmult, roua
surse trimise | ajutor