Subhasta X85340


Statement
 

pdf   zip   tar

En una subhasta, els postors van fent ofertes per un objecte. El subhastador anuncia cada cop que algú supera la millor oferta fins al moment. Els postors també es poden retirar de la subhasta.

Escriu un programa que simuli una subhasta. L’entrada comença amb un enter, el preu mínim de sortida. Després ve una seqüència d’events de dos tipus:

  • oferta <nom> <quantitat>: el postor <nom> fa una oferta de <quantitat> euros.

  • retira <nom>: el postor <nom> es retira de la subhasta.

Després de cada event, si la millor oferta ha canviat, cal escriure:

millor oferta: <quantitat> (<nom>)

Si no ha canviat, no s’escriu res.

La millor oferta inicial és el preu mínim de sortida. Totes les ofertes es registren, però només s’anuncien si superen la millor oferta.

Cal ignorar també les situacions següents (no produeixen cap sortida ni efecte):

  • Una oferta d’algú que ja s’ha retirat.

  • Una retirada d’algú que ja s’havia retirat.

Un cop un postor es retira, no pot tornar a participar.

Al final de tots els events, cal escriure el guanyador:

guanyador: <nom> (<quantitat>)

Si no queda cap postor (tots s’han retirat o ningú ha ofert prou), cal escriure:

no hi ha guanyador

Entrada

La primera línia conté un enter, el preu mínim de sortida. Les línies següents contenen events de tipus oferta o retira, com s’ha descrit. Els noms dels postors no contenen espais.

Sortida

Cada cop que la millor oferta canvia, una línia amb el format indicat. La millor oferta pot canviar tant per una nova oferta que superi l’anterior com per la retirada del postor que tenia la millor oferta. Al final, una línia amb el guanyador o indicant que no n’hi ha.

Observació

El centre d’interès en aquest problema és l’eficiència.

Als fitxers públics (icona del gatet) trobaràs els contenidors de PRO2 (stack.hh, queue.hh, heap.hh, i la seva dependència assert.hh), un program.cc buit per començar, un Makefile i el directori .vscode amb la configuració per compilar i debuggar amb VSCode.

Implementa el programa al fitxer program.cc i envia’l al Jutge. Pots fer servir qualsevol contenidor de la STL i els de PRO2 que necessitis.

Public test cases
  • Input

    100
    oferta anna 150
    oferta biel 200
    oferta carla 300
    

    Output

    millor oferta: 150 (anna)
    millor oferta: 200 (biel)
    millor oferta: 300 (carla)
    guanyador: carla (300)
    
  • Input

    100
    oferta anna 150
    oferta biel 200
    oferta carla 180
    retira biel
    

    Output

    millor oferta: 150 (anna)
    millor oferta: 200 (biel)
    millor oferta: 180 (carla)
    guanyador: carla (180)
    
  • Input

    500
    oferta anna 100
    oferta biel 200
    

    Output

    no hi ha guanyador
    
  • Input

    100
    oferta anna 110
    oferta biel 120
    oferta carles 130
    oferta daniel 140
    retira carles
    retira daniel
    retira anna
    

    Output

    millor oferta: 110 (anna)
    millor oferta: 120 (biel)
    millor oferta: 130 (carles)
    millor oferta: 140 (daniel)
    millor oferta: 120 (biel)
    guanyador: biel (120)
    
  • Information
    Author
    Pau Fernández
    Language
    Catalan
    Other languages
    Spanish
    Official solutions
    C++
    User solutions
    C++