Jedna poznata programerska kuća dobila je prije K vremenskih jedinica zadatak napraviti informacijski sustav kojim bi informatizirali poslovanje svih trgovina u jednom lancu trgovina. Došao je i dan isporuke programskih paketa, ali uslijed mnoštva trgovina, mnogo paketa je isporučeno pogrešnim trgovinama. Tako su sve trgovine u lancu dobile po jedan paket, ali se rijetko koja mogla pohvaliti da je dobila paket namijenjen baš njoj. Da bismo pomogli ljudima iz programerske kuće, napisat ćemo program koji će napraviti plan razmjene paketa kako bi svaka trgovina dobila pravi paket i to u što kraćem vremenskom roku. Iz nama nepoznatih razloga, dobili smo pravila razmjene koja moramo slijediti : 1. Bilo koje dvije trgovine mogu međusobno razmjeniti svoje pakete i ta operacija traje jedan dan. 2. U istom danu, različiti parovi trgovina mogu neovisno jedan od drugom razmjeniti svoje pakete. Potrebno je napraviti program koji će na temelju podataka o tome kamo je koji paket poslan napraviti plan razmjene i izračunati koliki je najmanji broj dana potreban da bi sve trgovine u lancu dobile svoje programske pakete. Ulazni podaci Podaci se učitavaju iz ulazne datoteke LANAC.IN. U prvoj liniji ulazne datoteke nalazi se prirodni broj N, manji ili jednak od 10,000. Taj broj nam predstavlja broj trgovina u lancu. U slijedećih N linija nalaze se prirodni brojevi, manji ili jednaki od N, u svakoj liniji po jedan broj. Oni su međusobno svi različiti. Ako u liniji (I + 1) piše broj J, to znači da je trgovina broj I dobila programski paket koji je bio namijenjen trgovini broj J. Izlazni podaci Program mora ispisati na ekran najmanji broj dana da bi pametnim planom razmjene svaka trgovina dobila svoj programski paket. Test primjeri LANAC.IN 2 2 1 ISPIS NA EKRANU Broj dana = 1 LANAC.IN 3 1 2 3 ISPIS NA EKRANU Broj dana = 0 LANAC.IN 4 4 2 1 3 ISPIS NA EKRANU Broj dana = 2 Program snimiti pod imenom LANAC.BAS, LANAC.PAS ili LANAC.C Maksimalno vrijeme izvršavanja iznosi 10 sekundi.