Matriu d'empleats P61055


Statement
 

pdf   zip

Una oficina està distribuïda com una matriu n×mn \times m de petits compartiments, a cadascun dels quals treballa exactament un empleat, del qual es coneix el nom i l’edat. El director general de l’empresa, que té poca feina, vol saber, a partir d’un compartiment donat, quants compartiments es pot moure cap a la dreta de manera que cada compartiment tingui un empleat amb nom més gran (alfabèticament) que el de l’empleat anterior i amb edat més petita que la de l’empleat anterior. També vol calcular el mateix, però anant cap avall enlloc de cap a la dreta. El podeu ajudar?

Entrada

L’entrada consisteix en diversos casos. Cada cas comença amb nn i mm, seguides del nom i l’edat de les persones de cada compartiment, seguint el format que es pot veure a l’exemple d’entrada. Per exemple, l’empleat del compartiment (0,3)(0, 3) es diu Joan i té 63 anys. Segueix el nombre de preguntes del cas pp, seguit de pp triplets ii jj cc, on 0i<n0 \le i < n, 0j<m0 \le j < m, i cc és un caràcter que és ‘D’ o ‘A’.

Sortida

Per a cada cas, i per a cada pregunta, escriviu el nombre de compartiments que es poden visitar començant en (i,j)(i, j) i movent-se segons les regles mencionades anteriorment, cap a la dreta si cc és ‘D’ o cap avall si cc és ‘A’. Escriviu una línia amb 10 guions al final de cada cas.

Observació

No es valorarà cap solució que no usi les definicions

    struct Empleat {
      string nom;
      int edat;
    };

    typedef vector<Empleat> Fila;
    typedef vector<Fila> Matriu;
Public test cases
  • Input

    3 4
     Joan Jaume Jaume  Joan
       33    24    40    63
    Jordi Jordi Jordi Jordi
       33    50    19    18
     Anna Jordi   Pep  Xavi
       24    23    20    18
    4
    2 0 D
    0 2 A
    1 2 D
    0 0 A
    
    1 1
    Maria
       23
    1
    0 0 D
    

    Output

    4
    2
    1
    1
    ----------
    1
    ----------
    
  • Information
    Author
    Salvador Roura
    Language
    Catalan
    Official solutions
    C++
    User solutions
    C++