Maria y Josep tienen que intercambiar a menudo información y no desean que el resto de sus compañeros de despacho puedan enterarse. Para ello han acordado un sistema simple de cifrado que oculta el mensaje dentro de una matriz cuadrada de letras mayúsculas. Teneís que hacer un programa que reciba una matriz con un mensaje oculto y lo escriba.
Para recuperar el mensaje teneís que seguir un recorrido (cíclico) de la matriz por diagonales y en sentido creciente (ver figura) y tener en cuenta algunos parámetros adicionales.
Además sabemos que el mensaje original está formado por palabras que contienen exclusivamente letras mayúsculas y que el blanco que separan dos palabras se ha reescrito, antes de ocultar el mensaje, con la combinación XX.
Vuestro programa debe utilizar la siguiente definición:
struct Coord {
int x,y;
};
y también tiene que definir, implementar y utilizar la función:
Coord siguienteD (const Coord& p, int n);
que, dadas las coordenadas de una posición en una matriz cuadrada n× n, calcula la posición siguiente de acuerdo con un recorrido por diagonales en sentido creciente. Por ejemple si n=8, la función con p=(7,7) ha de devolver las coordenades (0,0), con p=(0,7), (7,1) y con p=(2,1), (1,2).
Entrada
La entrada consiste en diversas líneas conteniendo información sobre matrices con mensajes ocultos. La descripción de una matriz se inicia con una línea con 5 valores enteros, n, d, ℓ (d ℓ < n2) y f, c, (p =(f,c) con 0≤ f,c< n) que determinan los parámetros. Seguidos de n líneas describiendo la matriz M que oculta el mensaje por filas.
Salida
Para cada matriz la salida está formada por el mensaje que oculta, escrito con las palabras separadas por un blanco. Podeis asumir que la combinación XX nunca forma parte de una palabra del mensaje original, que la combinación XXX nunca aparece en un mensaje oculto que el mensaje oculto siempre tiene como mínimo una palabra.
Seguid el formato especificado en los ejemplos.
Input
6 0 35 0 0 TNXXIG OXXDLX IERAST SEXOEL PXNDLS OUXAEP 4 0 11 2 2 XAAX MIXO RXHA XXLX 5 1 11 2 0 PROAX CUAXA HLAAI LXMRA XMRIA 8 3 15 4 2 PPPPPPES PPPPPPPP ULPPPPPP PTPPPPEP PPMNAPPP OPPPPXPP PPPPPXOP PPJPPPPC
Output
TONI SE PERDIO ALGUNOS DETALLES HOLA MARIA HOLA MARIA MENSAJE OCULTO