Flavius e un student pasionat al Facultăţii de Automatică. Cea mai mare pasiune a sa a fost mereu reţelistica, astfel el a urmat modulele de la CISCO. La CISCO, el a învăţat despre OSPF ( Open Shortest Path First ), un protocol care l-a captivat pe Flavius. Aflând că la baza ideii de OSPF se află algoritmul lui Dijkstra, algoritm pe care îl va studia la cursul de SDA, i-a venit o idee. El s-a gândit să simuleze o reţea ce are la bază protocolul OSPF, pentru a aprofuda algoritmul lui Dijkstra (pentru cursul de SDA şi, mai ales, pentru el). Din păcate, săracul Flavius, student silitor, are o problemă. Flavius nu s-a înţeles foarte bine cu programarea şi nici acum nu e foarte priceput, aşa că s-a gândit să vă ceară ajutor cu codul sursă.
Fişierul cu date de intrare va conţine următoarele date:
Ordinea în care sunt scrise operaţiile în fişierul de intrare este ordinea în care vor fi aplicate. Pentru toate operaţiile, pc-urile sau router-ele sunt identificate prin IP.
Operațiile posibile asupra datelor din fișier vor fi:
Fişierul de ieşire va conţine rezultatele operaţiilor ce generează un răspuns. Rezultatele sunt scrise în ordinea în care sunt scrise operaţiile primite la intrare, fiecare rezultat este urmat de un final de linie.
Flavius s-a simţit cam vinovat pentru sarcinile pe care vi le-a dat, aşa că s-a gândit să vă dea un exemplu:
6 Router1 192.0.1.1 1 pc1 192.0.1.2 1 Router2 192.0.2.1 1 pc1 192.0.2.2 1 Router3 192.0.3.1 1 pc1 192.0.3.2 1 Router4 192.0.4.1 1 pc1 192.0.4.2 0 Router5 192.0.5.1 1 pc1 192.0.5.2 1 Router6 192.0.6.1 1 pc1 192.0.6.2 1 8 Router1 Router2 10 Router1 Router3 1 Router3 Router4 5 Router3 Router5 1 Router4 Router2 3 Router4 Router6 1 Router5 Router4 1 Router6 Router2 1 14 ping 192.0.1.2 192.0.4.2 sipn 192.0.4.1 si 192.0.2.1 trace 192.0.1.2 192.0.2.2 up 192.0.4.2 ping 192.0.1.2 192.0.4.2 lc 192.0.3.1 192.0.5.1 trace 192.0.1.2 192.0.2.2 broke 192.0.2.2 add 192.0.3.1 192.0.5.1 10 trace 192.0.1.2 192.0.2.2 up 192.0.2.2 add 192.0.2.1 192.0.4.1 1 trace 192.0.1.2 192.0.2.2
NO 192.0.2.1 192.0.3.1 192.0.5.1 192.0.6.1 192.0.2.2 192.0.1.1 192.0.3.1 192.0.5.1 192.0.4.1 192.0.6.1 192.0.2.1 OK 192.0.1.1 192.0.3.1 192.0.4.1 192.0.6.1 192.0.2.1 192.0.1.1 192.0.3.1 192.0.4.1 192.0.2.1