Az S. 67. feladat (2011. december) |
S. 67. Régen, amikor a számítógép-hálózatok többnyire még koaxiális kábelekből és BNC csatlakozókból álló láncok voltak, a Pokoli Rendszergazda egyik kedvenc hobbija volt a hálózati topológia menet közbeni átalakítása, és az ezt követő felhasználói reakciók monitorozása.
Sajnos az újabb és újabb hálózatépítési módszerek elterjedésével a fenti szórakozás sokat vesztett értékéből, így a Pokoli Rendszergazda elhatározta, hogy a régi szép idők emlékére hobbiját virtuális környezetben újraéleszti. Minket kért fel annak a programkomponensnek a kifejlesztésére, amely a hálózat állapotát, illetve a felhasználói visszajelzéseket szimulálja.
A szimulátor egy N darab összeköttetés nélküli számítógépből álló ,,üres'' hálózatból indul ki, majd összesen M darab hálózatépítési és diagnosztikai műveletet vár. Feladata, hogy az egyes műveletekről rendre eldöntse, hogy azok megvalósíthatóak-e, és a megvalósítható hálózatépítési műveleteket sorra végrehajtsa.
A hálózatépítési műveletek részletesen a következők:
-- add <A> <B>\ ahol 1ABN a két számítógép sorszáma, melyek között új (kétirányú) összekötést kell kiépíteni. A művelet megvalósítható, ha jelenleg mindkét számítógéphez legfeljebb 1 kábel csatlakozik, és az új összekötés nem eredményez kört.-- remove <A> <B>\ ahol 1ABN a két számítógép sorszáma, melyek közötti közvetlen összekötést meg kell szüntetni. A művelet megvalósítható, ha A és B között vezet kábel.
Az alábbi diagnosztikai művelet pedig annak vizsgálatára szolgál, hogy az adott felhasználóktól várható-e visszajelzés a közeljövőben:
-- ping <A> <B>\ ahol 1ABN a két számítógép sorszáma, melyek közötti elérhetőséget vizsgáljuk. A művelet megvalósítható, ha A és B között vezet út a hálózatban.
Mindhárom műveletre a megvalósíthatóságtól függően ,,yes'', illetve ,,no'' választ kell adni.
A program és értékét a standard bemenet első sorában kapja, egyetlen szóközzel elválasztva. Az ezt követő M darab sor pedig egy-egy műveletet ír le a fenti formátumban.
A standard kimenetre szintén pontosan M darab sor kerüljön, minden sorba rendre a megfelelő művelet eredménye. A maximális pontszám eléréséhez a programnak legfeljebb néhány másodpercen belül le kell futnia a legnagyobb bemenetekre is.
Beküldendő egy tömörített s67.zip állományban a program forráskódja (s67.pas, s67.cpp, ...) az .exe és más, fordító által generált állományok nélkül, valamint a program rövid dokumentációja (s67.txt, s67.pdf, ...), amely tartalmazza a megoldás rövid leírását, és megadja, hogy a forrás melyik fejlesztő környezetben fordítható.
(10 pont)
A beküldési határidő 2012. január 10-én LEJÁRT.
Statisztika:
11 dolgozat érkezett. 10 pontot kapott: Marussy Kristóf. 9 pontot kapott: Adrián Patrik. 8 pontot kapott: 1 versenyző. 7 pontot kapott: 5 versenyző. 6 pontot kapott: 3 versenyző.
A KöMaL 2011. decemberi informatika feladatai