ref

Eu lucrez la editura unei reviste stiintifice. Redactorul sef tocmai mi-a trasat o sarcina laborioasa: sa prelucrez toate textele stiintifice astfel incat sa respecte un nou standard.

Un text stiintific este format dintr-o succesiune de paragrafe. Un paragraf este o succesiune de caractere terminata cu marcajul de sfarsit de linie (caracterul newline)
O referinta este un numar natural cuprins intre 1 si 99, incadrat intre paranteze patrate (de exemplu [23]), fara spatii intre numar si paranteze. Parantezele patrate nu sunt utilizate decat pentru marcarea referintelor.
Exista doua tipuri de paragrafe: paragraf normal si paragraf descriere de referinta.
Un paragraf normal poate sa contina un numar oarecare de referinte.
Un paragraf descriere de referinta difera de un paragraf normal prin faptul ca incepe cu referinta ce urmeaza a fi descrisa si nu contine in interiorul sau alte referinte. De exemplu:
[23] Aceasta este descrierea...
Paranteza patrata deschisa va fi pe prima pozitie a paragrafului descriere de referinta.
Pentru fiecare referinta care apare in paragrafele normale trebuie sa existe un paragraf descriere de referinta. De asemenea, orice paragraf descriere de referinta trebuie sa corespunda unei/unor referinte care apar in paragrafe normale.

Dupa noile standarde un text stiintific trebuie sa respecte urmatoarele reguli:
- referintele trebuie sa fie renumerotate, in ordinea primei lor aparitii in text, incepand cu 1;
- ordinea paragrafelor normale se pastreaza;
- paragrafele descriere de referinta trebuie sa fie plasate toate la sfarsitul textului, in ordinea numerelor referintelor descrise;
- nici o alta modificare nu este permisa in text.

Cerinta

Scrieti un program care sa citeasca un text stiintific si care sa-l prelucreze respectand regulile noului standard.

Date de intrare

Fisierul de intrare ref.in va contine textul stiintific care urmeaza sa fie prelucrat.

Date de iesire

Fisierul de iesire ref.out va contine textul stiintific prelucrat dupa noul standard.

Restrictii si precizari

Exemplu

ref.in ref.out
[44] reference description for 44
text 20 [20] text some other text 44 [44]
text again 20 [20]
[33] reference description for 33
regular paragraph 20 [20] regular paragraph 20 [20]
[20] reference description for 20
regular paragraph 20 [20] regular paragraph 33 [33]
regular paragraph 33 [33] regular paragraph 44 [44]

text 20 [1] text some other text 44 [2]
text again 20 [1]
regular paragraph 20 [1] regular paragraph 20 [1]
regular paragraph 20 [1] regular paragraph 33 [3]
regular paragraph 33 [3] regular paragraph 44 [2]
[1] reference description for 20
[2] reference description for 44
[3] reference description for 33

Timp maxim de executie/test: 0.1 secunde

prof. Emanuela Cerchez
Liceul de Informatica "Grigore Moisil" Iasi
Contact:emanuela.cerchez@gmail.com