Feladat: S.83 Korcsoport: - Nehézségi fok: -
Füzet: 2013/október, 423 - 424. 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.

Van egy N×M-es tábla csokink (N sor, M oszlop), amit szét szeretnénk osztani N×M gyereknek. Mivel ezt igazságosan szeretnénk megtenni, így mindenkinek pontosan egy ,,kocka'' csokit fogunk adni. Ehhez fel kell tördelnünk a tábla csokit. Ezt úgy végezzük, hogy kezdetben letesszük az asztalra, majd egy-egy törés után minden darabot az eredeti helyére teszünk vissza. Minden törésnek van valami költsége: az i-edik és az i+1-edik oszlop közti törés költsége oi, a j-edik és j+1-edik sor közti törés költsége sj. Ez azt jelenti, hogy ha van egy csokidarab az asztalon, akkor annak a törése kerül ennyibe. Ezzel az asztalon lévő többi különálló csokidarabon nem törtünk. A törések során minden csokidarab a helyén marad, nem helyezhetjük át oda, ahol olcsóbb lenne törni, egymásra sem tehetjük őket, hogy ,,egyszerre'' törjük. Csak a tábla oldalaival párhuzamos vonal mentén törhetjük a csokit.
A szabályoknak megfelelően minél olcsóbban szeretnénk 1×1-es ,,kockákra'' osztani a csokit. Adja meg a program, hogy mi ez a minimális költség.
A program olvassa be a standard input első sorából M-et és N-et (M,N500000), majd a következő M-1 sorból az oi egészeket, végül a következő N-1 sorból az si egészeket, és írja a standard output első, és egyetlen sorába a minimális törési összköltséget.

 
Példa bemenet:Példa kimenet:  6 442   21314412
 

Magyarázat: Ha először a sorok, majd az oszlopok mentén törünk, akkor
s1+s2+s3+4(o1+o2+o3+o4+o5)=7+411=51
lenne a törési költség. Ennél lehet olcsóbban is.
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.
Részpontszámok a következőkre kaphatóak:
a program N,M5-re megoldást ad;
a program N,M50-re megoldást ad;
a program N,M500-ra megoldást ad;
*a program N,M1000-re megoldást ad.

Beküldendő egy tömörített s83.zip állományban a program forráskódja (s83.pas, s83.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 (s83.txt, s78.pdf, ...), amely a fentieken túl megadja, hogy a forrás mely fejlesztői környezetben fordítható.