Programozó versenyek

DEIK Regionális Programozó Csapatverseny, középiskolai kategória, 2025. december 7.

2025. december 7. 10:30 – 2025. december 7. 15:30

Lyukas tető

Semmi sem tetőzi jobban a Karácsony hangulatát, mint a frissen hullott fehér hó. Sajnos azonban ahol hó van, ott idővel olvadás is lesz és ahol olvadás van ott hamar kiderülnek a nyáron hívott "de van egy haver aki olcsóbban megoldja" tetőfedő hiányosságai. Szerencsére azonban szinte korlátlan mennyiségben rendelkezésünkre állnak a tetőn lévő lyukak természetes ragadozói: a vödrök, illetve egyéb, kisebb-nagyobb űrtartalmű üvegek. A ti feladatotok az lesz, hogy a tetőn lévő lyukak ismeretében optimalizáljátok az edényfeltöltési időket.

Input

A bemenet az alábbi, sor vége karakterrel lezárt, sorokból áll:

  • Az első sor egyetlen pozitív egész n számot tartalmaz.
  • A következő sor szóközzel elválasztott pozitív egész k1 k2 k3... számokat tartalmaz (max. 200 darabot).

Output

A kimenet egyetlen nemnegatív egész szám, mely megmondja, hogy minimum mennyi időbe telik feltölteni az összes vödröt az alábbi feltételek mellett:

  • A feladat során tört egységekkel nem foglalkozunk, így a vödrök állapotát mindig óránként ellenőrizzük.
  • A plafonon lévő n darab "lyuk" egyszerre tölti az alájuk rakott vödröket, egységesen 1 liter/óra sebességgel.
  • Minden lyuk egyszerre 1 darab vödröt tud tölteni.
  • Az egyes vödrök űrtartalma rendre k1 k2 k3... liter.
  • Ha egy vödör megtelt akkor a lyuk alá kizárólag egy üres vödröt tehetünk (ha van).

Példa

Magyarázat

Jelen esetben 3 darab lyuknak kell összesen 4 vödröt megtöltenie. Rossz választás esetén akár 18 órába is telhet ez a művelet, hisz lehetőségünk van akár egyetlen lyuk alá betenni egymás után a vödröket. Azonban könnyen látszik, hogy "közepesen rossz választással" 9 óra is elég a megtöltésre, ha pl. az egyes lyukaknál az alábbi feltöltést használjuk: (2,7) (3) (6). Ekkor a második és harmadik lyuk 3, illetve 6 óra után nem tölt meg vödröt, az első lyuk alá viszont először a 2 literes, majd a 7 literes vödröt tesszük. Könnyen látszik azonban, hogy az optimális választás a (7) (6) (2,3) aminek köszönhetően összesen 7 óra alatt végzünk a vödrök feltöltésével.
Debreceni Egyetem, Informatikai Kar, v. 2024.09.30.