Középiskolai Matematikai és Fizikai Lapok
Informatika rovattal
Kiadja a MATFUND Alapítvány
Már regisztráltál?
Új vendég vagy?

Az S. 83. feladat (2013. október)

S. 83. 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, N\le
500\;000), 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.

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+4.11=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,M\le5-re megoldást ad;

- a program N,M\le50-re megoldást ad;

- a program N,M\le500-ra megoldást ad;

- a program N,M\le1000-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ó.

(10 pont)

A beküldési határidő 2013. november 11-én LEJÁRT.


Mintamegoldásnak Weisz Ambrus megoldását tesszük közzé. S83main.cpp Illetve a dokumentáció: S83megoldas.txt


Statisztika:

22 dolgozat érkezett.
10 pontot kapott:Juhász 326 Dániel, Kiss 666 Péter, Kovács-Deák Máté, Makk László, Németh 123 Balázs, Weisz Ambrus, Zalavári Márton.
9 pontot kapott:Fonyó Viktória, Gercsó Márk, Molnár-Sáska Zoltán, Somogyvári Kristóf, Zarándy Álmos.
6 pontot kapott:3 versenyző.
5 pontot kapott:2 versenyző.
3 pontot kapott:1 versenyző.
1 pontot kapott:2 versenyző.
Nem versenyszerű:2 dolgozat.

A KöMaL 2013. októberi informatika feladatai