Az I. 172. feladat (2007. december) |
I. 172. Egy áruház téli akciójában minden vásárlást követően, amelynek értéke meghaladja a 3000 Ft-ot, egy 100 Ft értékű utalványt kapunk. Az utalvány egy következő vásárláskor használható fel. Tervezzük, hogy a közeljövőben több terméket is vásárolunk az áruházban. Szeretnénk a lehető legjobban kihasználni az akcióban rejlő lehetőséget, ezért nem egyszerre vesszük meg, amiket szeretnénk, hanem többször vásárolunk: a megvételre kiválasztott termékeket áraik alapján úgy csoportosítjuk, hogy összességében a lehető legkevesebbet kelljen fizetni értük, tehát a vásárlások során a legtöbb kedvezményt kapjuk.
Készítsünk programot, amely a megvásárolandó termékeket (legföljebb 100 darabot) azok ára alapján úgy csoportosítja, hogy a lehető legtöbb utalványt kapjuk, így a lehető legkevesebbet kelljen összesen fizetni. A termékeket tartalmazó szöveges bemeneti fájl minden egyes sorában a termékek 6 jegyű kódja (egy hat számjegyből álló szám) és a termék ára (10 Ft és 50 000 Ft közötti érték) szerepel, egymástól szóközzel elválasztva. A program olvassa be a fenti adatokat a parancssor első paramétereként megadott bemeneti állományból, majd a második paraméterként megadott kimeneti állományba írja az eredményt. Az eredmény csak az egyes vásárlások alkalmával fizetendő összegeket tartalmazza, egy vásárlás összegét egy sorban, illetve az állomány utolsó sorában a teljes fizetendő összeg szerepeljen.
Beküldendő a program forráskódja (i172.pas, i172.cpp, ...), valamint a program rövid dokumentációja (i172.txt, i172.pdf, ...), amely tartalmazza a megoldás rövid leírását, és megadja, hogy a forrásállomány melyik fejlesztő környezetben fordítható.
(10 pont)
A beküldési határidő 2008. január 15-én LEJÁRT.
A feladat megoldása a mellékelt, alapos kommentezéssel ellátott Pascal programban I172MO.PAS olvasható, lényege:
- a 3000 Ft-nál értékesebb termékeket egyszerűen egyesével megvesszük,
- a maradék termékekből megpróbáljuk a legkisebb elemszámú, legkisebb értékű 3000 Ft-ot elérő termékcsoportkat összeállítani.
A beküldött megoldásokat az alábbi tesztfileok.zip tömörített állományban lévő forrásokkal teszteltük (a mintamegoldás kimenetele is itt található).
Statisztika:
6 dolgozat érkezett. 9 pontot kapott: Földes Imre, Horváth 135 Loránd. 8 pontot kapott: 1 versenyző. 7 pontot kapott: 1 versenyző. 6 pontot kapott: 1 versenyző. 3 pontot kapott: 1 versenyző.
A KöMaL 2007. decemberi informatika feladatai