12137. Дужки


Відправити розв'язок

Бали: 100
Time limit: 2.0s
Memory limit: 500M

Authors:
Problem type
Allowed languages
C++, Java, Pascal, Python

Вам надано непорожній рядок \(S\), що складається з (, ) і ?. Існує \(2^x\) способів отримати новий рядок, замінивши кожен ? у \(S\) на ( і ), де \(x\) — кількість входжень ? у \(S\). Серед них знайдіть число за модулем 998244353 способів, які дають рядок дужок.

Рядок називається рядком дужок, якщо виконується одна з наступних умов.

  • Це порожній рядок.
  • Це конкатенація (, A та ) для деякого рядка дужок A.
  • Це конкатенація A та B для деяких непорожніх рядків дужок A та B.

Обмеження

  • \(S\) є непорожнім рядком довжини щонайбільше 3000, що складається з (, ) і ?.

Формат вхідних даних

Вхідний потік містить \(S\).

Формат вихідних даних

У вихідний потік виведіть відповідь.

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

(???(?

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

2

Заміна \(S\) на ()()() або (())() дає рядок дужок. Інші заміни не дають рядка круглих дужок, тому виводимо 2.

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

)))))

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

0

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

??????????????(????????(??????)?????????(?(??)

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

603032273

Коментарі

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