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. 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 (1\le N\le 10\;000). 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:

s30.pas

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