Escala consonant de paraules X47203


Statement
 

pdf   zip

Definició 1: Un parell de paraules en majúscula (p1,p2p_1, p_2) forma una escala consonant si el nombre d’aparicions de consonants a p2p_2 supera al nombre d’aparicions de consonants a p1p_1.

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 kk és una seqüència de kk 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 nn files i mm columnes, diem que una seqüència de kk posicions de la matriu és esglaonada si és de la forma {(i,j),(i+1,j+1),...,(i+k1,j+k1)}\{(i,j), (i+1, j+1),..., (i+k-1, j+k-1)\}, per i,j,ki, j, k complint 0i0\leq i, i+k1<ni+k-1 < n, 0j0\leq j, j+k1<mj+k-1<m.

Per exemple, donada una matriu de 6×106\times 10, la seqüència {(0,2),(1,3),(2,4),(3,5),(4,6)}\{(0,2),(1,3),(2,4),(3,5),(4,6)\} és una seqüència esglaonada de posicions que comença a la posició (0,2)(0,2) i té longitud 55.

Es demana:

Feu un programa que, donada una matriu de paraules i un natural kk , recorri la matriu per files i indiqui la primera posició (i,j)(i,j) que conté una escala consonant de paraules de longitud kk en la seqüència esglaonada de posicions que comença a (i,j)(i,j).

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;

Entrada

L’entrada conté un únic cas. El cas consisteix en el nombre de files n1n\geq 1, el nombre de columnes m1m\geq 1 de la matriu i un natural positiu kk que determina la longitud de l’escala consonant de paraules a cercar. A continuació venen nn línies amb mm strings cadascuna. Cada string està format només per lletres majúscules.

Sortida

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 kk 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.

Public test cases
  • 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
    
  • Information
    Author
    Gabriel Valiente, Maria Blesa
    Language
    Catalan
    Other languages
    English Spanish
    Official solutions
    Unknown.
    User solutions
    C++