Codeforces Round 288 (Div. 2) |
---|
Закончено |
Обратите внимание на нестандартное ограничение по памяти.
Недавно Артур с Сашей изучили правильные скобочные последовательности. Артур отлично понял эту тему и ему настолько ею проникся, что завёл себе любимую правильную скобочную последовательность длины 2n. В отличие от Артура, Саша очень плохо понял тему про правильные скобочные последовательности, и назло Артуру сломал его любимую правильную скобочную последовательность.
Все, что помнит Артур о своей любимой последовательности — это для каждой открывающейся скобки '(' примерное расстояние до соответствующей ей закрывающейся ')'. Для i-й открывающейся скобки он помнит отрезок [li, ri], в котором лежит расстояние до соответствующей ей закрывающейся.
Формально говоря, для i-й открывающейся скобки (при их нумерации слева направо) известно, что разность позиций соответствующей ей закрывающейся скобки и её собственной позиции лежит в отрезке [li, ri].
Помогите Артуру восстановить его любимую правильную скобочную последовательность!
В первой строке записано целое число n (1 ≤ n ≤ 600), количество открывающихся скобок в любимой правильной скобочной последовательности Артура.
В следующих n строках записаны числа li и ri (1 ≤ li ≤ ri < 2n), обозначающие отрезок, в котором лежит расстояние от i-й открывающейся скобки до соответствующей ей закрывающейся.
Описания отрезков заданы в том порядке, в котором открывающиеся скобки встречаются в любимой последовательности Артура, если перечислять их слева направо.
Если по описанным данным возможно восстановить правильную скобочную последовательность, выведите любой возможный вариант.
Если же Артур что-то напутал, и последовательностей, соответствующих данной информации нет, выведите единственную строку «IMPOSSIBLE» (без кавычек).
4
1 1
1 1
1 1
1 1
()()()()
3
5 5
3 3
1 1
((()))
3
5 5
3 3
2 2
IMPOSSIBLE
3
2 3
1 4
1 4
(())()
Название |
---|