F017A. Manipulant dates

Considereu una seqüència de dates ordenada de forma estrictament creixent. (Per exemple, la seqüència podria ser 5/5/2003, 6/5/2003, 1/8/2003.) Volem poder fer les operacions següents:

Feu un programa que, a partir d’una seqüència de dates inicialment buida, vagi realitzant les operacions demanades. Compte: les tres operacions (afegir, esborrar, i consultar) han de ser eficients. En particular, el codi de les dues primeres hauria de ser minúscul. Per a la tercera, useu dues vegades un algorisme fonamental. La seqüència pot crèixer fins arribar a tenir un màxim de 10000 elements.

Pista

Us suggerim que utilitzeu la definició

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

així com una funció

    Data data_llegida();

que llegeixi i retorni una data de l’entrada.

Entrada

L’entrada consisteix en una sèrie d’ordres: Si es vol afegir, ve una A seguida d’una data estrictament més gran que totes les dates presents a la seqüència. Si es vol esborrar, ve una E. Teniu la garantia que mai no s’intentarà esborrar d’una seqüència buida. Si es vol consultar, ve una C seguida de dues dates aa i bb presents a la seqüència, i tals que aba \le b. Tots els dies es troben entre 1 i 31, els mesos entre 1 i 12, i els anys entre 1 i 5000.

Sortida

Per a cada consulta de l’entrada, escriviu una línia amb la distància entre les dues dates.

Informació del problema

Autoria: Professorat de P1

Generació: 2026-01-25T11:54:17.002Z

© Jutge.org, 2006–2026.
https://jutge.org