Олимпиадный тренинг

Задача . C. Суммарная вложенность


Задача

Темы: Конструктив *1800

Напомним, что скобочная последовательность называется правильной, если в неё возможно вставить символы '+' и '1' так, что получится правильное арифметическое выражение. Например, последовательность «(()())» является правильной, так как из неё возможно получить правильное арифметическое выражение, вставив символы '+' и '1': «((1+1)+(1+1))». Аналогично, следующие последовательности — правильные: «()()()», «(())» и «()». Следующие последовательности не являются правильными скобочными последовательностями: «)(», «(()» и «())(()».

В этой задаче заданы два целых числа n и k. Постройте такую правильную скобочную последовательность из круглых скобок длины n, суммарная вложенность всех открывающих скобок в которой в точности равна k. Вложенность одной открывающей скобки равна количеству пар соответствующих скобок, в которые она вложена.

Например, в последовательности «()(())» вложенность первой открывающей скобки равна 0, вложенность второй открывающей скобки равна 0, а вложенность третьей открывающей скобки равна 1. Таким образом, суммарная вложенность всех открывающих скобок равна 1.

Входные данные

В первой строке содержатся целые числа n и k (1 ≤ n ≤ 3·105, 0 ≤ k ≤ 1018) — количество открывающих скобок и необходимая суммарная вложенность.

Выходные данные

Выведите построенную правильную скобочную последовательность из круглых скобок.

Если такую последовательность невозможно построить, выведите «Impossible» (без кавычек).

Примечание

Первый пример разобран в условии.

Во втором примере ответ «(((())))». Действительно, вложенность первой открывающей скобки равна 0, вложенность второй открывающей скобки равна 1, вложенность третьей открывающей скобки равна 2, вложенность четвёртой открывающей скобки равна 3. Суммарная вложенность равна 0 + 1 + 2 + 3 = 6.

В третьем примере невозможно построить подходящую правильную скобочную последовательность, так как максимальная возможная суммарная вложенность открывающих скобок для последовательности из двух пар скобок равна 1. Такая суммарная вложенность получается для последовательности «(())».


Примеры
Входные данныеВыходные данные
1 3 1
()(())
2 4 6
(((())))
3 2 5
Impossible

time 2000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w645
Комментарий учителя