3. HOI, 2. svibnja 1997. ZADATAK 2 - GRADOVI 70 bodova BornaElektrisiti dio 2 Za razliku od ruske krave koja ipak nije znala letjeti, Borna je još uvijek živ. U međuvremenu se tvrtka BornaElektrisiti nevjerovatno proširila. O ključnim trafostanicama sada brinu terenski radnici koji koriste Krešin program. Da, dobro je zaradio, hvala na pitanju. Da, i ja. BornaElektrisiti je tvrtka koja se širi i razvija inercijom. S poslovne strane to je odlično, ali Borni je postalo dosadno. Projektante koji rade na projektu elektrifikacije jedne južnoafričke državice odlučio je platiti na dosta čudan način. Naime na sljedećem sastanku Borna će projektantima postavljati pitanja o novom projektu. Pitanja će biti oblika: "Da li su gradovi A i B spojeni dalekovodom?" na koja će projektanti odgovarati sa Da ili Ne. Borna će postavljati pitanja sve dok ne bude siguran da li će se elektro mreža te državice sastojati iz jednog ili više dijelova. Projektanti će biti plaćeni po formuli broj_postavljenih_pitanja * 5 Kn. Pomozite projektantima da od Borne izvuku što više kuna. Vaš zadatak je napisati dva potprograma i to: void init ( int n ); int connected ( int a , int b ); odnosno procedure init ( n : integer ); function connected ( a , b : integer ) : integer; Glavni dio programa prvo će pozvati vaš potprogram init. Njegov ulazni parametar n označava koliko ima gradova u dotičnoj državici. Nakon toga glavni dio programa poziva vašu funkciju connected kad želi saznati da li su a i b spojeni dalekovodom. Ulazni parametri a i b označavaju gradove. Gradovi su označeni brojevima od 0 do n-1. Funkcija connected treba vratiti 0 ukoliko gradovi nisu spojeni, odnosno 1 ukoliko jesu. Ukratko, glavni dio programa predstavlja Bornu, a vaša funkcija connected projektante. PRIMJER Borna i projektanti pozivi vaših potprograma Za n=5 init( 5 ); Borna pita: "Da li su gradovi 0 i 1 spojeni dalekovodom?" connected( 0 , 1 ); Projektanti: "DA" connected vraća 1 Borna pita: "Da li su gradovi 1 i 2 spojeni dalekovodom?" connected( 1 , 2 ); Projektanti: "DA" connected vraća 1 Borna pita: "Da li su gradovi 2 i 3 spojeni dalekovodom?" connected( 2 , 3 ); Projektanti: "DA" connected vraća 1 Borna pita: "Da li su gradovi 2 i 4 spojeni dalekovodom?" connected( 2 , 4 ); Projektanti: "NE" connected vraća 0 Borna pita: "Da li su gradovi 3 i 4 spojeni dalekovodom?" connected( 3 , 4 ); Projektanti: "DA" connected vraća 1 U ovom trenutku Borna zaključuje da će se elektromreža te državice sastojati iz jednog dijela Za n=5 init( 5 ); Borna pita: "Da li su gradovi 0 i 1 spojeni dalekovodom?" connected( 0 , 1 ); Projektanti: "NE" connected vraća 0 Borna pita: "Da li su gradovi 0 i 2 spojeni dalekovodom?" connected( 0 , 2 ); Projektanti: "NE" connected vraća 0 Borna pita: "Da li su gradovi 0 i 3 spojeni dalekovodom?" connected( 0 , 3 ); Projektanti: "NE" connected vraća 0 Borna pita: "Da li su gradovi 0 i 4 spojeni dalekovodom?" connected( 0 , 4 ); Projektanti: "NE" connected vraća 0 U ovom trenutku Borna zaključuje da će se elektromreža te državice sastojati iz više dijelova. Napomena: U direktoriju C:\DMIH\GRADOVI nalaze se GRADOVI.C i GRADOVI.PAS. Prilikom izrade svojih potprograma koristite ove datoteke kao kostur u koji ćete dodavati vaše potprograme. Prilikom testiranja iz vaše datoteke GRADOVI.C/GRADOVI.PAS kopirati će se svi vaši potprogrami i globalne varijable u novi kostur, koji će se zatim kompajlirati i testirati. Program mora generirati rješenje unutar 15 sekundi. Program snimiti pod imenom GRADOVI.C ili GRADOVI.PAS u direktorij C:\DMIH\GRADOVI i na disketu.