Правильная скобочная последовательность (ПСП)




Генерация правильных скобочных последовательностей напрямую вытекает из способа проверки - нам просто нужно добавлять новые скобочки, не нарушая корректности. Делается это методом рекурсивного перебора. Если вы его не знаете - БЕ... а, нет, можете попытаться понять, читая дальше. Вот образец кода для одного типа скобок:

#include <vector>
#include <iostream>

using namespace std;
int n; // Половина длины 
vector<char> ans; // Наш ответ 

void rec(int balance) {
	if (ans.size() == 2 * n) { // Если выполняется - значит, мы закончили 
		for (int i = 0; i < 2 * n; i++)
			cout << ans[i] << " ";
		cout << "\n";
	}
	if (ans.size() + balance + 2 <= n * 2) { // Проверяем, успеем ли мы закрыть новую открывающую скобку 
											 // А теперь следите за руками: нам не нужно делать отдельный вектор для каждой последовательности 
		ans.push_back('(');
		rec(balance + 1);
		ans.pop_back(); // Чтобы это понять, нужно осознавать рекурсию. Вначале мы добавляем в вектор скобку, а потом выполняем весь этот код снова. 
						// То есть опять добавляем скобку, если можем. 
						// И так будет происходить, пока мы не начнём из рекурсии выходить - то есть, пока мы не дойдём до нужной длины. 
						// Тогда скобки начнут удаляться. Если вы это поняли - я вас поздравляю, вы классный(ая). 
	}
	if (balance > 0) { // Если можем закрыть какую-то скобку - закрываем. 
		ans.push_back(')');
		rec(balance - 1);
		ans.pop_back();
	}
}

 int main()
{
	cin >> n;
	rec(0);
	
    return 0;
}
А теперь время сложностей - алгоритм для нескольких типов скобок вам придётся писать САМИМ! Муахахахахахахахахахахахаха!

Task
Time limit: 1000 ms,
Memory limit: 256 Mb

А самой инновационной разработкой "British Scientists, Inc" является способ нахождения решения для любой задачи, которую возможно решить с помощью тильда-омега-лямбда-исчисления (то есть, для никакой). Для этого они перебирают все возможные скобочные последовательности длины x, где х - первая цифра секретной константы, использующейся во многих разработках компании. Если x нечётное, они просто прибавляют к нему единицу. Потом они используют продвинутые алгоритмы, использующие нейролингвистическое программирование и вычисленные по спирали Фибоначчи числа Каталана гуголдцатого порядка для определения местонахождения термов. Но эти алгоритмы уже реализованы и запатентованы. 
Ваша же задача - реализовать алгоритм перебора. 
На вход подаётся первая цифра секретной константы - x (1 <= x <= 9).
Нужно вывести все ПСП длины x (или x+1, если x%2==1) в лексикографическом порядке.

Пример
Ввод Вывод
1
( )
[ ]
{ }

(с) Кирионенко Д, 2017

Auto CHOOSE THE PROGRAMMING NECESSARY LANGUAGE!
Attach the program source file:
or enter the source code in the language:

Rules for designing programs and a list of errors during automatic task verification
           

Results: