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
)))(((

Приклад вихідних даних

)))(((

Коментарі

Ще немає коментарів.