Feladat: S.99 Korcsoport: - Nehézségi fok: -
Füzet: 2015/május, 296. oldal  PDF  |  MathML 

A szöveg csak Firefox böngészőben jelenik meg helyesen. Használja a fenti PDF file-ra mutató link-et a letöltésre.

Egy M (1M100000, M egész szám) hosszú falon N (1N5000) repedés keletkezett. Az egyszerűség kedvéért a repedéseket mint pontokat képzeljük el a falon, helyüket a fal egyik végétől valamilyen x (1xM, egész) koordináták adják meg. Célunk az, hogy lefessük a fal minden repedését. Úgy festünk, hogy kinyitunk egy w feliratú doboz festéket, amely pontosan w hosszú falrész festésére alkalmas, majd a tartalmával lefestünk egy x0 és x1 koordinátákkal határolt falrészt (w=x1-x0+1). A kiválasztott tartományon belül természetesen lefestjük az ép falrészeket is ‐ akár többször is. Addig nyitunk ki újabb festékesdobozt és festünk, amíg minden repedést el nem tüntettünk. A festéshez minden w (1wM) egész számra pontosan egy w feliratú, és ismert bj árú doboz festék áll rendelkezésre. Egy hosszabb festés nem feltétlenül drágább, mint egy rövidebb, sőt egy nagyobb doboz festék ára lehet egy kisebb doboz festék árával egyenlő, vagy annál kisebb is. Fessük le a lehető legolcsóbban az összes repedést a falon.
A program olvassa be a standard input első sorából N-et és M-et, majd a következő N sorból az ai egészeket, azaz a repedések helyét. A következő M sorban rendre az egyes hosszokhoz tartozó festékes dobozok bj ára szerepel. Írjuk a standard output első sorába a minimális pénzt, amennyiből a festés megoldható. Helytakarékosság miatt a bemenetben az N, illetve az M sorban lévő számokat / jellel elválasztva egy sorba írtuk.

 
Példa bemenet:Példa kimenet:  6 12   9   1 / 2 / 11 / 8 / 4 / 12   2 / 3 / 4 / 4 / 8 / 9 / 15 / 16 / 17 / 18 / 19 / 19
 

Magyarázat: ha veszünk egy 4, egy 1 és egy 2 feliratú vödröt, akkor azokkal pont le tudjuk festeni az összes repedést. Az ár: 4+2+3=9.
Pontozás és korlátok: A programhoz mellékelt, a helyes megoldás elvét tömören, de érthetően leíró dokumentáció 1 pontot ér. A programra akkor kapható meg a további 9 pont, ha bármilyen hibátlan bemenetet képes megoldani az 1 mp futásidőkorláton belül.
Beküldendő egy tömörített s99.zip állományban a program forráskódja (s99.pas, s99.cpp, ...) az .exe és más, a fordító által generált állományok nélkül, valamint a program rövid dokumentációja (s99.txt, s99.pdf, ...), amely a fentieken túl megadja, hogy a forrás mely fejlesztői környezetben fordítható.