Feladat: I.183 Korcsoport: - Nehézségi fok: -
Füzet: 2008/március, 164 - 165. oldal  PDF  |  MathML 
Témakör(ök): Feladat

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.

Bergengócia kórházaiban a kiadási összegeket igyekeznek csökkenteni. A kilyukadt lepedőket nem dobják el, hanem megfoltozzák. Rendelkeznek egy korszerű lyukfelismerő géppel, amely minden lepedőnél adott felbontással meghatározza, hogy cellánként a vászon ép-e, vagy lyukas. (Lyuk a vászon szélén nem lehet, mert a lepedő széle a beszegés miatt nagyon erős.)

 
 

A felismerő gép egy cellára V értéket ad, ha a vászon sértetlen és L értéket, ha lyukas. A lyukas területre az anyaghiányt éppen eltakaró téglalap alakú foltot szeretnének varrni, amelynek oldalai a lepedő oldalaival párhuzamosak. A lyukas terület összefüggő, ha az L tartalmú cellák oldalukkal, de különálló, ha csak sarkukkal érintkeznek, vagy nem érintkeznek. A foltok átfedhetik egymást.
Készítsünk programot, amely a lyukfelismerő gép által meghatározott adatállomány alapján megadja, és a standard kimenetre írja a lepedőre varrandó foltok sorszámát, bal felső és jobb alsó sarkának koordinátáit (sor száma, oszlop száma sorrendben) a lepedő bal felső sarkához képest.
A program parancssori argumentuma legyen a lepedőt leíró adatállomány neve. A fájl első sorában egy egész érték szerepel: N (3N200) a sorok száma; a fájl második sorában M (3M200) az oszlopok száma. Az ezt követő N sor mindegyike M számú karaktert tartalmaz a megfelelő cellák állapotának (V vagy L) leírására.
 
 

Beküldendő a program forráskódja (i183.pas, i183.cpp, ...), valamint a program rövid dokumentációja (i183.txt, i183.pdf, ...), amely tartalmazza a megoldás rövid leírását, és megadja, hogy a forrásállomány melyik fejlesztő környezetben fordítható.