Az S. 30. feladat (2007. november) |
S. 30. Meg szeretnénk határozni, hogy egy területen adott csapadékmennyiség esetén hol alakulnak ki tavak, tócsák. Az egyszerűség érdekében a területet keresztmetszetét tekintjük, és azt rögzített hosszúságú, vízszintes szakaszokra osztjuk, melyeknek ismerjük egymáshoz viszonyított magasságát. Azt is feltesszük, hogy a területen egyenletesen oszlik el az eső.
Az esővíz a magasabban lévő vízszintes szakaszokról a velük szomszédos, alacsonyabban lévő vízszintes szakaszokra folyik. Azokon a szakaszokon, melyeknek mindkét szomszédos szakaszának vízszintje alacsonyabban van, fele-fele arányban oszlik szét a két szomszédos szakasz között a középsőre eső csapadék. A terület szélein lévő szakaszokról csak a terület belseje felé tud folyni a víz.
Készítsünk programot, mely meghatározza, hogy az esőzés után végül mely szakaszokon gyűlt össze a csapadékvíz. A program a bemenetet az s30.be fájlból olvassa. Ennek első sora két, szóközzel elválasztott egész számot tartalmaz: a csapadék milliméterben mért mennyiségét és a szakaszok N számát (). A második sor pontosan N darab, szóközzel elválasztott egész számot tartalmaz: sorra az egyes szakaszok magasságát, milliméterben mérve, a legalacsonyabb magassághoz viszonyítva.
A program kimenete az s30.ki fájl legyen, melynek egyetlen sora N db, szóközzel elválasztott számjegyet tartalmazzon. Az i-edik számjegy 1, ha az i-edik szakaszon van víz, egyébként pedig 0.
A fent látható ábrához tartozó példa:
(10 pont)
A beküldési határidő 2007. december 17-én LEJÁRT.
Megoldás
A feladat mintamegoldásaként egy Pascal programot közlünk:
A benne lévő kommentek alapján könnyen érthető a müködése.
Statisztika:
4 dolgozat érkezett. 10 pontot kapott: Fábián András, Szebeni Szilveszter. 8 pontot kapott: 2 versenyző.
A KöMaL 2007. novemberi informatika feladatai