Module: Secuencia de paréntesis correcta (RSP)


Problem

4 /6


generación de psp

Theory Click to read/hide

La generación de secuencias de corchetes correctas se deriva directamente de la forma en que se realiza la verificación: solo necesitamos agregar nuevos corchetes sin violar la corrección. Esto se hace por iteración recursiva. Si no lo conoces - BE... ah, no, puedes tratar de entender leyendo más. Este es un ejemplo de código para un tipo de paréntesis:
 

#incluir <vector>
#incluye <iostream>

utilizando espacio de nombres std;
intn; // Media longitud 
vector<char> respuesta; // Nuestra respuesta 

void rec(int balance) {
if (ans.size() == 2 * n) { // Si es así, entonces estamos hecho < /span>
para (int i = 0; i < 2 * n; i++)
cout << y[yo] << " ";
cout << "\n";
}
si (ans.size() + balance + 2 <= n * 2) { // Comprueba, nosotros Lo haremos, cerramos la nueva llave de apertura 
// Ahora ten cuidado: no necesitamos hacer un vector separado para cada secuencia 
respuesta.push_back('(');
rec(saldo + 1);
respuesta.pop_back(); // Para comprender esto, debe conocer la recursividad. Primero, agregamos un paréntesis al vector y luego ejecutamos todo este código nuevamente. 
// Es decir, agregar un paréntesis nuevamente, si podemos. 
// Y esto sucederá hasta que empecemos a salir de la recursividad, es decir, hasta que alcancemos la longitud deseada. 
// Entonces se empezarán a quitar los corchetes. Si entiendes esto, te felicito, eres increíble. 
}
si (saldo > 0) { // Si podemos cerrar un paréntesis, lo cerramos. 
respuesta.push_back(')');
rec(saldo - 1);
respuesta.pop_back();
}
}

 int principal()
{
cin>> norte;
rec(0);

    return 0;
}
Y ahora el momento de las dificultades: ¡tendrá que escribir el algoritmo para varios tipos de corchetes USTED MISMO! Muahahahahahahahahahahahaha!

Problem

El desarrollo más innovador de British Scientists, Inc. es una forma de encontrar una solución para cualquier problema que se pueda resolver usando el cálculo tilde-omega-lambda (es decir, para ninguno). Para ello, pasan por todas las posibles secuencias de paréntesis de longitud x, donde x es el primer dígito de una constante secreta utilizada en muchos de los desarrollos de la empresa. Si x es impar, simplemente le agregan uno. Luego usan algoritmos avanzados que usan programación neurolingüística y Fibonacci calculó números catalanes de Googold para ubicar los términos. Pero estos algoritmos ya han sido implementados y patentados. 

Su tarea es implementar el algoritmo de iteración. 


Entrada
La entrada es el primer dígito de la constante secreta - x (\(1 <= x <= 9\)).  ;
 

Salida
Debe generar todos los tramos de longitud x (o x+1 si \(x \% 2 ==1\) ) en orden lexicográfico.

 

Ejemplos
# Entrada Salida
1 1
( )
[ ]
{}