Rangs de Preus X34934


Statement
 

pdf   zip   tar

Disposem d’una llista exhaustiva dels preus de productes a diferents botigues de tot el territori, i volem veure quins productes tenen rangs de preus a on la diferència entre el més alt i el més baix sobrepassa un tant per cent PP.

Definirem la ràtio entre el preu més alt i el més baix trobats per a un mateix producte com a RR: si el preu més alt és aa, i el més baix és bb, llavors el producte té una ràtio R=(ab)/bR = (a - b) / b. Ens interessen els productes amb RPR \geq P. Per exemple, si decidim que PP és 40% (per tant, 0.4) i per a cert producte el preu més alt aa és 285, i el preu més baix bb és 200, llavors la ràtio RR és (285200)/200=0.425(285 - 200) / 200 = 0.425, i per tant es compleix que RPR \geq P.

La llista de preus és simplement una seqüència molt llarga de parelles amb l’identificador d’un producte (un int) i el preu a una botiga en particular. Donat que un mateix producte es ven a moltes botigues, apareixerà repetidament amb preus diferents. Tanmateix, pot ser que hi hagi productes que només es venen en una sola botiga.

Fes un programa que llegeix primer un tant per cent PP, i tot seguit una llista de productes, i en acabar mostri per pantalla els identificadors dels productes amb una ràtio RR major o igual que PP.

Observació

Els fitxers públics (icona del gatet) contenen:

main.cc el programa principal, buit
Makefile per compilar amb make còmodament
.vscode carpeta per compilar i debuggar amb VSCode

Cal enviar el programa sencer en un sol fitxer.

Entrada

L’entrada comença amb el tant per cent PP (un double entre 0 i 100) que indica la relació entre preu més alt i més baix, que és el llindar amb el qual treballem. Tot seguit ve una seqüència de codis de producte i el seu preu (un double), en un ordre arbitrari.

Sortida

La sortida és "Sense resultats" si no hi ha productes a on RR sigui major o igual que PP. Si hi ha resultats, cal mostrar la llista dels identificadors dels productes que compleixen RPR \geq P, separats per un espai entre ells, ordenats numèricament de forma creixent, i en una sola línia.

Public test cases
  • Input

    50
    100001 100
    100001 120
    100001 160
    100002 500
    100002 550
    

    Output

    100001
    
  • Input

    1
    100001 100
    100002 500
    100003 1000
    

    Output

    Sense resultats
    
  • Input

    1
    3001 100
    3003 1000
    3002 500
    3001 102
    3002 510
    3003 1020
    

    Output

    3001 3002 3003
    
  • Information
    Author
    Pau Fernández
    Language
    Catalan
    Official solutions
    C++
    User solutions
    C++