Când rezolva o problemă cu un if care se întindea pe 7 rânduri, M.R. Fire și-a dat seama că de la un punct devine enervant să te asiguri că parantezele se închid corect.
Din fericire, Iron Mișu folosește și el Vim, și a decis să scrie un plugin care să îl ajute. Plugin-ul trebuie să poată procesa următoarele operații pe un șir de paranteze $S$ inițial gol:
După fiecare operație, plugin-ul afișează dacă șirul $S$ este o parantezare corectă sau nu.
Iron Mișu s-a plictisit după o vreme și a trecut la VS Code și v-a însărcinat pe voi să construiți plugin-ul de Vim.
Dat fiind un șir de operații, afișați după fiecare dintre ele dacă șirul $S$ este corect parantezat sau nu.
Un șir parantezat corect se definește astfel:
unde + reprezintă operația de concatenare a două șiruri.
Pe prima linie se va afla un număr $N$, numărul de operații.
Pe a doua linie se va afla un șir de caractere care poate conține doar caractere din mulțimea ’(‘, ‘)’, ‘[‘, ‘]’, ‘*’, reprezentând operațiile primite de plugin.
Pe prima linie se va afișa un șir de caractere format din 1 și 0. A $i$-a valoare din șir va fi 1 dacă șirul $S$ este corect parantezat după efectuarea celei de-a $i$-a operații sau 0, în caz contrar.
| |
Punctaj | Restricții |
|---|---|---|
| 1 | 17 | $N \leq 1000$ |
| 2 | 24 | Șirul nu conține ’*’ |
| 3 | 38 | Șirul nu conține paranteze drepte. |
| 4 | 21 | Fără restricții adiționale. |
Intrare
12 ([()])[]*)*]
Ieșire
000001010001
Cele trei 1-uri corespund șirurilor:
([()]) ; ([()])[] ; ([()])])
| Autor: | Livia Măgureanu |
| Publicat de: | Oepeling |
Tags:
Stive