Aplūkosim virknes, kas veidotas tikai no apaļajām un kvadrātiekavām, t.i., simboliem '()[]'. Korektu iekavu izteiksmi definē šādi:
Piemēram, virknes '()()[]', '([])[()]' un '[(())][]' ir korektas iekavu izteiksmes, bet '(', '][', '([)]' nav. Par derīgu virknes fragmentu sauksim pēc kārtas sekojošus virknes simbolus, ja tie veido korektu iekavu izteiksmi. Jums ir dota iekavu virkne. Katrā solī virknes sākumā vai beigās tiek pievienota viena iekava (apaļā vai kvadrātiekava, atverošā vai aizverošā). Uzrakstiet programmu, kas pēc katra soļa nosaka īsākā derīgā virknes fragmenta, kas satur šajā solī pievienoto iekavu, garumu!
Teksta faila iekavas5.dat pirmajā rindā dota sākotnējā iekavu virkne. Tās garums nepārsniedz 100,000. Nākamajā rindā dots vesels skaitlis N, 1 ≤ N ≤ 100,000, - soļu skaits. Katrā no nākamajām N rindām dots vesels skaitlis A un simbols C (starp tiem ir tukšumsimbols). Ja A ir nulle (0), tad simbols C tiek pievienots virknes sākumā, bet, ja A ir viens (1), tad C tiek pievienots virknes beigās.
Teksta faila iekavas5.rez katrā no N rindām jāizvada prasītā fragmenta garums pēc kārtējā soļa izpildes. Ja tāda fragmenta nav, jāizvada skaitlis 0.
|
Copyright © 2001 Girts Folkmanis, LIIS |