Targetas Perforadas


Enviar solució

Punts: 8 (parcial)
Temps Límit: 2.0s
Límit de memòria: 64M

Autor/a:
tipus del problema
Bucles simples
Categoria
Extern
Llenguatges permesos
Bash, C#, C++, Haskell, Java, Kotlin, PHP, Python

Autor: Canadian Computing Competition

En los primeros días de la informática, las instrucciones tenían que "perforarse" en tarjetas rectangulares, una instrucción por tarjeta. Esta baraja de cartas se introducía en un lector de tarjetas para que el programa pudiera leerse y ejecutarse. Los estudiantes colocan bandas elásticas alrededor de su mazo de cartas y, a menudo, llevan sus cartas en una caja por temor a que se desordenen y, por lo tanto, su programa sea incorrecto.

El pobre Bill, sin embargo ... dejó sus cartas cerca de una ventana y el viento hizo volar su ordenado mazo de cartas por todo el lugar, ¡y por lo tanto su programa no funciona! Bill decide coger las cartas en un orden aleatorio y luego ejecutar el programa.

Escribe un programa para leer y ejecutar los comandos en el "nuevo" programa de Bill.

Entrada

El lenguaje de programación que utiliza Bill tiene solo dos variables (A y B) y siete tipos diferentes de instrucciones.

Inicialmente, las variables A y B contienen el valor 0.

Hay una instrucción por línea. Una instrucción es un número entero en el rango 1… 7, posiblemente seguido por un nombre de variable, que a su vez posiblemente sea seguido por un número o una variable.

En todas las instrucciones siguientes, la variable X o Y puede referirse a A o B. Las instrucciones específicas son:

  • 1 X n significa asignar la variable X al valor entero n;
  • 2 X significa imprimir el valor de la variable X por pantalla;
  • 3 X Y significa calcular X + Y y almacenar el valor en la variable X;
  • 4 X Y significa calcular X × Y y almacenar el valor en la variable X;
  • 5 X Y significa calcular X − Y y almacenar el valor en la variable X;
  • 6 X Y significa calcular el cociente de XY y almacenar el valor en la variable X como un número entero, descartando el resto.
  • 7 significa detener la ejecución de este programa.

Puedes suponer que todas las instrucciones de división no provocan una división por cero y que todas las demás operaciones (incluida la instrucción 1) no hacen que el valor calculado / almacenado sea mayor que 10000 o menor que −10000.

Salida

Tu programa debe generar el valor de las variables indicadas, un entero por línea, hasta que se haya leído la instrucción "detener", momento en el cual su programa debe detener la ejecución.

Ejemplo de Entrada 1

1 A 3
1 B 4
2 B
2 A
3 A B
2 A
5 A A
2 A
2 B
7

Ejemplo de Salida 1

4
3
7
0
4

Comentaris