Feladatok‎ > ‎

Maximális profit

Leírás

Géza, egy gyurmabolt lelkes üzemeltetője a heti bevásárlását tervezgeti. Készített egy nagy táblázatot, ami segítségével el szeretné dönteni, hogy milyen termékeket lenne érdemes a boltjába beszerezni. Tudja a különböző gyurmákról, hogy mennyiért tudja őket beszerezni. Remek üzleti érzékének köszönhetően meg tudja becsülni, hogy hány darabot és mennyiért tudna eladni az egyes gyurmafajtákból.

Mivel a boltja egyelőre kicsi és zsúfolt a kialakítása, csak megfelelő mennyiségű gyurmát tud kirakni. Raktározásra egyelőre nincs módja.

Feladat

Írj egy programot, ami segít Gézának eldönteni, hogy a maximális nyereség (összbevétel-összkiadás) érdekében milyen gyurmákat érdemes megvennie! Írj ki N számot, ahol az i-edik azt jelenti, hogy hányat érdemes az i-edikből vennie.

Készíts egy osztályt, aminek egy példánya el tudja tárolni egy gyurma beszerzési árát, eladási árát és a várható eladott mennyiségét!

Használj Comparatort vagy Comparable-t!

Bemenet

Az első sorban N és K szerepel, N a Géza által összeírt termékek száma, K pedig a bolt kapacitása (ennyi gyurmát tud összesen megvenni).

Ezután N sorban egy-egy számhármas, az első a beszerzési ár, a második az eladási ár, a harmadik a várt eladott mennyiség.

Kimenet

N szám, az i-edik azt jelenti, hogy az i-edik termékből ennyit érdemes venni a maximális profit elérése érdekében. Több megoldás esetén bármelyik jó.

Példa

 Bemenet Kimenet 
6 24
9 9 8
8 9 7
8 9 9
7 8 7
6 8 8
5 8 5
 
0
7
4
0
8
5

Hasznos lehet

Két elem közül melyik a nagyobb?

http://www.tutorialspoint.com/java/java_using_comparator.htm

Comparable<T>

public class XYZ implements Comparable<XYZ> {
    …
    public int compareTo(XYZ other) {
        …
    }
}

Azok az osztályok Comparable-ök, amiknél meg tudjuk mondani két objektum között, hogy melyik a nagyobb. A compareTo pozitív számot ad vissza, ha a this ">", mint az other paraméter, 0-t ad, ha a kettő egyenlő, negatív számot, ha a "<" igaz.

Meghívása:

XYZ a = …, b = …
System.out.println(a.compareTo(b);

Comparator<T>

Ugyanúgy össze tudunk hasonlítani két elemet a Comparator interfész segítségével:

public class ComparatorClass implements Comparator<XYZ> { // XYZ típusú objektumokat tud összehasonlítani).
    …
    public int compare(XYZ a, XYZ b) {
        …
    }
}

Hasonlóképpen, ha a compare függvény pozitív egészt ad, "a" a "nagyobb", ha 0-t, akkor a kettő egyenlő, ha negatív számot, akkor a "b" a nagyobb

Arrays....

Comments