Słowem nawiasowym będziemy nazywali słowo złożone z dwóch rodzajów znaków: nawiasów otwierających, czyli "(", oraz nawiasów zamykających, czyli ")". Wśród wszystkich słów nawiasowych będziemy wyróżniać poprawne wyrażenia nawiasowe. Są to takie słowa nawiasowe, w których występujące nawiasy można połączyć w pary w taki sposób, że:
Na słowie nawiasowym można wykonywać operacje:
-ty nawias
w słowie na przeciwny,Na pewnym słowie nawiasowym wykonywane są kolejno operacje zamiany lub sprawdzenia.
Napisz program, który:
W pierwszym wierszu wejścia znajduje się
jedna liczba całkowita
(
)
oznaczająca długość słowa nawiasowego. W drugim
wierszu znajduje się n nawiasów bez znaków odstępu między nimi.
W trzecim wierszu znajduje się jedna liczba
całkowita m (
)
oznaczająca liczbę operacji wykonywanych na słowie nawiasowym.
W każdym z kolejnych m wierszy znajduje się jedna
liczba całkowita.
Jeśli w (
)-wierszu (dla
)
występuje liczba 0, to znaczy, że k-tą z kolei
operacją wykonywaną na słowie nawiasowym jest operacja sprawdzenia.
Jeśli zaś jest to liczba całkowita p spełniająca
,
to znaczy, że operacją tą jest operacja zamiany p-tego nawiasu
na przeciwny.
Twój program powinien wypisać w kolejnych wierszach (standardowego wyjścia) wyniki kolejnych operacji sprawdzenia. Jeśli bieżące słowo nawiasowe jest poprawnym wyrażeniem nawiasowym, to należy wypisać słowo TAK, w przeciwnym przypadku słowo NIE. (Na wyjściu powinno pojawić się tyle wierszy, ile operacji sprawdzenia zadano na wejściu.)
Dla danych wejściowych:
4 ()(( 4 4 0 2 0
poprawną odpowiedzią jest:
TAK NIE
Autor zadania: Krzysztof Sikora.
W razie problemów technicznych ze Szkopułem, prosimy o kontakt mailowy pod adresem szkopul@fri.edu.pl.
Jeśli chciałbyś porozmawiać o zadaniach, rozwiązaniach lub problemach technicznych, odwiedź nasze serwery na Discordzie. Są one moderowane przez społeczność, ale członkowie zespołu wsparcia również aktywnie się tam udzielają.