Copiado al portapapeles
Descripción
Recientemente ha salido un libro para los programadores competitivos, llamado Competitive Programmer's Handbook, en tal libro en el capítulo 2 se habla de complejidades y reglas para calcularlas según la Notación O, como está de moda automatizar todo, en esta ocasión se quiere automatizar el cálculo de complejidades y mostrar estas en notación O.
Las reglas para el cálculo de complejidades en notación O son las siguientes:
- Cualquier instrucción salvo un for tiene complejidad 1
- Un for tiene complejidad n
- Si un for tiene contenido dentro uno o más \textbf{\textit{for}}, la complejidad es equivalente a \textit{n} elevado a la cantidad máxima de fors contenidos uno dentro de otro.
Entrada
La primera línea contiene un número entero $1\leq t \leq 500$ que indica la cantidad de programas a analizar.
Por cada programa, la primera línea tendrá un número entero $1<c<100$ que indica la cantidad de líneas de código del programa, en las siguientes $c$ líneas se incluirán las líneas de código sin indentación en lenguaje C++.
Una línea de código puede ser:
Inicio de ciclo: for(int\ cont = 0;cont < n; cont++) {
Fin de ciclo: }
Declaración e Inicialización: int nombreVariable = 0;
Incremento de valor: nombreVariable++;
Salida
Para cada programa imprimir la complejidad en notación O de las líneas de código, según el siguiente formato O(complejidad, donde complejidad es igual a la complejidad en notación O del programa, vea los ejemplos para mejor entendimiento.