F008A. Dates badèniques P68836


Statement
 

pdf   zip

thehtml

En el planeta Badènia s’usa un sistema de dates diferent al nostre. Encara que una data s’identifica com en el nostre cas amb un dia, un mes i un any, no coneixem ni quants mesos té un any, ni quants dies té cada mes. Però això no hauria de ser cap impediment perquè resolgueu aquest problema:

Donada una seqüència de dates badèniques, escriviu la primera que estigui compresa entre la seva anterior i la seva posterior dintre de la seqüència. Si no n’hi ha cap, indiqueu-ho.

Per exemple, |32/15/2007| està entre |23/2/1981| i |1/1/10234|, ja que és més gran que la primera i més petita que la segona. Com un altre exemple, |10/10/2| està entre |100/10/2| i |100/1/2|, perquè és més petita que la primera i més gran que la segona.

Utilitzant la definició

struct Data { int dia, mes, any; };

el vostre programa ha d’incloure i fer servir la funció

bool menor(const Data& d1, const Data& d2);

que retorna cert si i només si la data |d1| és estrictament menor que la data |d2|.

Entrada

L’entrada comença amb un natural n ≥ 3. Segueixen n dates badèniques diferents, cadascuna descrita amb tres naturals separts amb una barra, en aquest ordre: dia, mes, i any.

Sortida

Escriviu la primera data que estigui compresa entre la data anterior a ella i la data posterior a ella dins de la seqüència. Si no n’hi ha cap, indiqueu-ho. Seguiu el format dels exemples.

Observació

No podeu usar vectors per resoldre aquest problema.

Public test cases
  • Input

    4  1/1/2008 23/2/1981 32/15/2007 1/1/10234
    

    Output

    32/15/2007
    
  • Input

    3  100/10/2 10/10/2 100/1/2
    

    Output

    10/10/2
    
  • Input

    3  1/1/1 3/3/3 2/2/2
    

    Output

    cap data trobada
    
  • Information
    Author
    Professorat de P1
    Language
    Catalan
    Other languages
    English
    Official solutions
    C++
    User solutions
    C++