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. 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 1\leA\neB\leN 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 1\leA\neB\leN 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 1\leA\neB\leN 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 2\le N\le 1\;000\;000 és 0\le M\le 1\;000\;000 é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