Definició 1: Un parell de paraules en majúscula () forma una escala consonant si el nombre d’aparicions de consonants a supera al nombre d’aparicions de consonants a .
Per exemple, el parell (MADUIXOT, PRESSEC) forma una escala consonant, perquè MADUIXOT té 4 consonants i PRESSEC en té 5. També la formen (POMA, PLATAN). Però en canvi no formen escala consonant (SINDRIA, PRUNA) ni (PERA, KIWI).
Definició 2: Una escala consonant de paraules de longitud és una seqüència de paraules escrites amb lletres majúscules, on tot parell de paraules consecutives de la seqüència forma una escala consonat.
Per exemple: POMA, MADUIXA, PLATAN, PRESSEC, ALBERCOCS és una escala consonant de paraules de longitud 5.
Definició 3: Donada una matriu amb files i columnes, diem que una seqüència de posicions de la matriu és esglaonada si és de la forma , per complint , , , .
Per exemple, donada una matriu de , la seqüència és una seqüència esglaonada de posicions que comença a la posició i té longitud .
Es demana:
Feu un programa que, donada una matriu de paraules i un natural , recorri la matriu per files i indiqui la primera posició que conté una escala consonant de paraules de longitud en la seqüència esglaonada de posicions que comença a .
El vostre programa ha de representar la matriu de paraules mitjançant el següent tipus:
struct Paraula {
string contingut; // la paraula
int consonants; // nombre d'aparicions de consonants
};
typedef vector< vector<Paraula> > MatParaules;
L’entrada conté un únic cas. El cas consisteix en el nombre de files , el nombre de columnes de la matriu i un natural positiu que determina la longitud de l’escala consonant de paraules a cercar. A continuació venen línies amb strings cadascuna. Cada string està format només per lletres majúscules.
Cal escriure en una línia el número de fila, el número de columna de la matriu, i la paraula amb què comença la primera (segons un recorregut per files) escala consonant de paraules de longitud en una seqüència esglaonada de posicions. Cal escriure -1 -1 si la matriu no en conté cap.
Seguiu el format especificat als exemples. El vostre codi ha de seguir bones normes d’estil, i ha de contenir els comentaris que considereu oportuns.
Input
4 6 2 SA SO TO ON NI VI VI SA SO TO ON NI NI VI SA SO XX ON YY ZZ XX YY ZZ XX
Output
1 3 TO
Input
1 6 1 SA SO TO ON NI VI
Output
0 0 SA
Input
2 6 2 SA SO TO ON NI VI VI SA SO TO ON NI
Output
-1 -1
Input
3 6 4 SA SO TO ON NI VI SA SO TO ON NI VI SA SO TO ON NI VI
Output
-1 -1