12113. Дужки
Відправити розв'язок
Бали:
100
Time limit:
2.0s
Memory limit:
500M
Authors:
Problem type
Allowed languages
C++, Java, Pascal, Python
Вам надано рядок \(S\) довжиною \(N\), що складається з малих літер англійської мови та символів '(' і ')'.
Виведіть рядок \(S\) після виконання наступної операції стільки разів, скільки можливо.
- Виберіть і видаліть безперервний підрядок \(S\), який починається з '(', закінчується на ')' і не містить '(' або ')' крім першого та останнього символів.
Можна довести, що рядок \(S\) після виконання операції якомога більшої кількості разів однозначно визначається незалежно від способу її виконання.
Обмеження
- \(1≤N≤2×10^5\)
- \(N\) є цілим числом.
- \(S\) — це рядок довжиною \(N\), що складається з малих літер англійської мови та символів '(' і ')'.
Формат вхідних даних
Перший рядок містить ціле число \(N\).
Наступний рядок містить \(S\).
Формат вихідних даних
У вихідний потік виведіть відповідь.
Приклад вхідних даних
8
a(b(d))c
Приклад вихідних даних
ac
Ось одна з можливих процедур, після якої \(S\) стане \(ac\).
- Видаліть підрядок \((d)\), утворений четвертим-шостим символами \(S\), зробивши його \(a(b)c\).
- Видаліть підрядок \((b)\), утворений другим-четвертим символами \(S\), зробивши його \(ac\).
- Операція вже не може бути виконана.
Приклад вхідних даних
5
a(b)(
Приклад вихідних даних
a(
Приклад вхідних даних
2
()
Приклад вихідних даних
Рядок S після процедури може бути порожнім.
Приклад вхідних даних
6
)))(((
Приклад вихідних даних
)))(((
Коментарі