Problema 3
Promedia, divide o multiplica ¡y vencerás!
pdmv.pas, pdmv.c, pdmv.cpp
Problema
Se tiene una cuadrícula de tamaño m renglones por n columnas con números entre 1 y 1000. En cada iteración, se obtiene un promedio p de la casilla con sus vecinos* (arriba, abajo, derecha e izquierda), y se truncan los decimales. Si p es par, el nuevo valor de la casilla es p/2; si p es impar será 3p+1. Da la cuadrícula resultante después de las t iteraciones.
*Cuando un número está en la orilla de la cuadricula no tendrá 4 vecinos, por lo cual se deberá promediar con los vecinos que tenga (ver ejemplo).
Entrada
En el primer renglón habrá dos números positivos m y n, 1 ≤ m ≤ 50, 1 ≤ n ≤ 50, indicando la cantidad de renglones y columnas de la cuadrícula.
En cada uno de los siguientes m renglones habrá n números separados por un espacio.
El último renglón tendrá un entero no negativo t, 1 ≤ t ≤ 12, la cantidad de iteraciones.
Salida
Deberá contener m reglones con n números, separados por espacio, la cuadrícula resultante después de t iteraciones.
Ejemplo
entrada | salida |
2 3 1 3 5 2 4 7 1 |
1 10 16 1 2 16 |
2 3 1 3 5 2 4 7 2 |
2 22 7 4 22 34 |
2 3 1 3 5 2 4 7 3 |
28 40 64 28 10 64 |
Concurso: | 12a OMI, Aguascalientes - Examen Final (2a parte).15/Abril/2007 |
Propuesto por: | Pier Paolo Guillén Hernández |
Ayuda: | entradas, salidas, sugerencias |
Soluciones: | pdmv.pas, pdmv.c, pdmv.cpp |