Skakači

View as PDF

Submit solution


Points: 1
Time limit: 2.0s
Memory limit: 512M

Problem type

Čuvena hakerska grupa je razvila novu vrstu virusa, tzv. skakače, fokusirane na računarske mreže.

Računarska mreža je skup servera V (|V| = N) i direktnih veza E (|E| = M). Svaka direktna veza povezuje dva različita servera, dozvoljavajući im da komuniciraju u oba smera. Ako je server u zaražen virusom, tim virusom će se zaraziti i svi serveri W gde je W skup servera koji su direktno povezani sa nekim susedom servera u. Formalno, W = \{ w \mid \{(u,v),(v,w)\} \subseteq E \}. Novoinficirani server w može da nastavi da zaražava servere na isti način.

Vi hoćete da zarazite sve servere u nekoj mreži, tako što ćete izabrati jedan server i njega zaraziti virusom. Potom bi taj virus nastavio da zaražava ostale servere na opisani način. Nažalost može se desiti da na ovakav način nije moguće zaraziti sve servere u početnoj mreži. Srećom, shvatili ste da možete da dodate direktne veze između nekih servera.

Koliko je najmanje veza potrebno dodati tako da bi bilo moguće zaraziti sve servere, tako što ćete izabrati jedan server i njega zaraziti virusom?

Opis ulaza

Prva linija sadrži brojeve N i M, gde 3 \le
N \le 5 \cdot 10^5 i 2 \le M \le 5 \cdot 10^5. Sledećih M linija sadrže dva broja u i v (1 \le u, v \le N), koji predstavljaju direktnu vezu između dva servera u i v. Postoji najviše jedna veza između bilo koja dva servera i ne postoji server koji je povezan direktnom vezom sa samim sobom.

Opis izlaza

Potrebno je ispisati samo jedan broj - najmanji broj veza koje je neophodno dodati.

Primer ulaza 1

3 2
1 2
2 3

Primer izlaza 1

1

Primer ulaza 2

5 10
1 2
2 3
3 4
4 5
5 1
1 3
2 4
3 5
4 1
5 2

Primer izlaza 2

0

Primer ulaza 3

12 13
2 3
3 4
4 5
5 2
6 7
7 8
8 9
9 10
10 7
9 12
12 11
11 6
12 7

Primer izlaza 3

3

Objašnjenje primera

U prvom primeru postoje N = 3 servera i M = 2 direktne veze \{(1,2),(2,3)\}. U ovoj mreži ne postoji način da zarazimo sve servere, ako bi zarazili samo jedan server, npr. ukoliko zarazimo server 1, onda će samo serveri 1 i 3 zaraženi i sl. Možemo da dodamo jednu direktnu vezu - (1,3) da bi postigli naš cilj. Kada to uradimo, ako zarazimo server 1, svi serveri, 1, 2, i 3 će biti zaraženi. 1 \rightarrow 3 \rightarrow 2 (stoga, server 2 je zaražen). 1 \rightarrow 2 \rightarrow 3 (stoga, server 3 je zaražen).


Comments

There are no comments at the moment.