|
|||
H — ErdőrajzA „Rajzolj erdőt!” nevű játék igencsak népszerű a vidámparkunk legifjabb látogatói körében. A játék résztvevőinek száma lényegében korlátlan, és csaknem mindenki nyer. A játék roppant egyszerű. A játékvezető először röviden leír egy képet egy olyan erdőről, ahol nemrég megfordult. A játékosok ezután kapnak papírt és színes ceruzát, és a legjobb tudásuk szerint reprodukálniuk kell a képet. Bárki, aki be tud mutatni akár csak egy képrészletet egy, a Föld tetszőleges pontján lévő erdő tetszőleges részéről tetszőleges stílusban, kap egy kis jutalmat: csokoládét vagy gyümölcsöt. Ebben a feladatban ennek a játéknak az imitációját kell leprogramozni. Mivel te sokkal tapasztaltabb vagy, mint a fiatal játékosok, a te rajzodnak pontosan meg kell felelnie a specifikációknak. A reprodukálandó kép egy tisztást ábrázol, azaz egy olyan nyílt területet egy erdős vidéken, amely kevésbé telített fákkal, mint a környező sűrű erdő. A képet „ASCII art” stílusban kell elkészíteni. Egy M × M-es képet egy M sorból álló „vászonnal” reprezentálunk, ahol minden sor M karaktert tartalmaz. A vásznon a kép minden pixelét valamilyen nyomtatható ASCII karakterrel adjuk meg. A kép egyes pixeleinek a koordinátái megfelelnek a vásznon lévő karakterek koordinátáinak. A kép bal alsó sarkában és a jobb felső sarkában lévő pixelek koordinátái rendre (0, 0) és (M – 1, M – 1). A kép jobb alsó sarkában lévő pixel x koordinátája M – 1.
A kép minden pixele jelölhet füvet, illetve egy álló fának vagy egy fatuskónak egy darabját.
Egy füvet jelölő pixelt a vásznon egy pont karakterrel („
Egy álló fának van egy pozitív S magassága, és négy részből áll: a gyökérzetből, a
fatörzsből, az ágakból és a koronából. A gyökérzetet három vízszintesen szomszédos karakter
írja le: aláhúzásjel, függőleges vonal, aláhúzásjel („
Egy fatuskó három vízszintesen szomszédos pixelből áll, amelyeket az aláhúzás, a kis
„ Ügyeljünk rá, hogy egy álló fa vagy egy fatuskó a képen esetleg csak részben látható vagy egyáltalán nem látható, a koordinátáitól függően. Ennek illusztrálását lásd a példa kimeneten! A bemenet specifikációjaA bemenet számos tesztesetet tartalmaz. Minden teszteset egy olyan sorral kezdődik, amelyben két egész szám (M és N) áll egy szóközzel elválasztva (1 ≤ M ≤ 100, 1 ≤ N ≤ 105). Ezt N sor követi, amelyek mindegyike három, szóközzel elválasztott egész számból (S, X és Y) áll, amelyek egy-egy álló fát vagy fatuskót írnak le. X és Y értékei vagy a gyökérzet, vagy a fatuskó középpontjának a koordinátáit adják meg. Ha S = 0, akkor a számhármas egy fatuskót ír le, ha pedig S > 0, akkor egy S magasságú álló fát. Ezekre az értékekre 0 ≤ S ≤ 9, valamint –109 ≤ X, Y ≤ 109 teljesül. Két különböző álló fa vagy fatuskó garantáltan nem takarják ki egymást, azaz minden darabjukat más-más pixel fogja leírni. A kimenet specifikációja
Minden tesztesetre a tisztás képét leíró vásznat kell a kimenetre írni. A vászon felső sora
legyen a kép elsőnek kiírt sora, a vászon alsó sora pedig a kép utolsóként kiírt sora! A
képet egy csillag karakterekből („ Példa bemenet
A példa bemenethez tartozó kimenet
|
|||
Debreceni Egyetem, Informatikai Kar, v. 2024.09.30. |