Ir al contenido (saltar navegación)

Restanacci

Tiempo máximo: 1,000-2,000 sMemoria máxima: 4096 KiB
Tres conejos en la puerta de un corral

La sucesión de Fibonacci es archiconocida entre los estudiantes de informática. Es una serie infinita de números, que comienza con un 0 y con un 1, y a partir de ahí cada valor de la secuencia se construye sumando los dos valores inmediatamente anteriores.

Originalmente propuesta como una solución a un problema de la cría de conejos, la serie tiene infinidad de propiedades que los matemáticos se han entretenido en buscar y detallar. Para los informáticos, sin embargo, es un ejemplo de recusión doble.

El problema que tiene esta sucesión, a efectos prácticos, es que crece bastante deprisa. Aunque el primer número de Fibonacci (fib0) es 0 y el segundo (fib1) es 1, luego el valor se dispara y, por ejemplo, fib46 es 1.836.311.903. El siguiente valor de la secuencia ya no entra en un entero de 32 bits con signo, el tipo habitual en muchos lenguajes de programación.

Eso quita mucha diversión porque se puede subir muy poco… ¡hasta hoy! Para solucionar este problema, hemos inventado la sucesión de Restanacci donde cada valor se calcula como la resta de los dos anteriores. Además, para añadir un poco de variedad, los dos primeros valores de la secuencia pueden ser cualquiera. ¡Eso aumenta todavía más la diversión!

  • res0 = a
  • res1 = b
  • resn = resn-1 − resn-2

Entrada

Cada línea de la entrada estándar contendrá un caso de prueba que el programa tendrá que procesar. Un caso de prueba son tres números naturales, 0 ≤ abn ≤ 109. La entrada termina con tres ceros, que no deben procesarse.

Salida

Por cada caso de prueba el programa escribirá el valor de resn, sabiendo que res0 = a y res1 = b.

Se garantiza que en ningún caso el valor de la sucesión será mayor, en valor absoluto, a 2×109.

Entrada de ejemplo

0 1 0
2 3 1
7 4 2
123456 654321 14
0 0 0

Salida de ejemplo

0
3
-3
530865