Feladat: S.45 Korcsoport: - Nehézségi fok: -
Füzet: 2009/május, 295 - 296. oldal  PDF  |  MathML 
Témakör(ök): Nehezebb 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.

Rejtvénylapokban sűrűn előfordul az ún. ,,összekötögetős'' feladat, amelyben egy N×N-es négyzetháló bizonyos mezőiben található azonos betűket kell összekötni úgy, hogy ezek az összekötő vonalak nem metszik és nem is fedik át egymást. Készítsünk programot, amely egy legföljebb 20×20-as négyzethálóban megadja az összes betűpár megfelelő összekötését, ha lehetséges, különben meghatároz egy olyan összeköttetés rendszert, amelyben a lehető legtöbb betűpár szabályosan össze van kötve.
A program a négyzetháló leírását az első parancssori argumentumaként megadott szöveges állományból olvassa. Egy N×N-es négyzetháló esetén a bemeneti állomány N sorból áll, mely sorok mindegyikében N karakter található. Az összekötendő betűk az angol ABC nagybetűi (legföljebb 25), az üres mezők helyén egy szóköz található.
A program a második parancssori argumentumaként megadott szöveges állományba írja a kitöltött táblázatot, amelyben az összeköttetést a nagybetűk között a velük azonos kisbetűk mutatják. Amennyiben az összeköttetés nem teljesen oldható meg, például k betűpár már nem köthető össze, úgy a standard kimenetre írjuk ki a ,,k betűpár összekötése nem sikerült'' szöveget, és a kimeneti állomány csak egy olyan részben kitöltött táblázatot tartalmazzon, ahol a lehető legtöbb betűpár van összekötve.

 
 

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