amici

Time limit: 0.1s Memory limit: 16MB Input: amici.in Output: amici.out

În cadrul Comisiei de la clasele 11-12 a apărut, în mod natural, o reţea de socializare. Iniţial între cei N membri ai Comisiei există M relaţii de prietenie. În fiecare zi, se formează noi asemenea relaţii după următoarea regulă: dacă membrul A nu este încă prieten cu membrul B, dar ei au cel puţin un prieten în comun, atunci A şi B vor deveni prieteni în ziua imediat următoare.

Această socializare intensă va naşte, bineînţeles, multe poveşti şi anecdote care le vor înveseli în mod cert viitoarele întâlniri. Din păcate, autorul este insensibil la această latură umanistă a activităţii comisiei şi insistă că situaţia prezintă, este de fapt doar o oportunitate pentru o provocare algoritmică. El se întreabă câte zile va dura până când orice membru al comisiei va deveni prieten cu orice alt membru. Deoarece comisia are multi membri anul acesta, iar autorul nu are, de fel, standarde foarte ridicate, acesta se multumeste cu o aproximare a rezultatului. Mai exact, dacă răspunsul adevărat este X, atunci răspunsurile X + 1 sau X – 1 sunt considerate și ele acceptabile.

Cerință

Dându-se numerele N și M, cât și cele M relații de prietenie dintre membrii comisiei, să se estimeze câte zile trebuie să treacă până când există relație de prietenie între oricare doi membri ai comisiei.

Date de intrare

Pe prima line a fisierului amici.in se va afla numărul T, reprezentând numărul de teste din fișier, fiecare test respectând următorul format:

Prima linie conține două numere naturale N şi M, cu semnificaţia din enunţ. Următoarele M linii vor conţine câte două numere X şi Y, semnficând faptul că X şi Y sunt prieteni iniţial. O anumită pereche X Y se poate repeta în cadrul fisierului de intrare.

Date de ieşire

În fișierul amici.out se vor afișa T linii, fiecare conținând răspunsul pentru câte un test în ordinea în care sunt date testele.

Restricţii

  • 1 <= N <= 21.000
  • 0 <= M <= 41.000
  • 1 <= T <= 5
  • Se garantează că răspunsul este finit.
  • Reamintim că răspunsul este considerat corect chiar dacă diferă cu o unitate faţă de răspunsul adevărat.

Exemplu:

amici.in

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

amici.out

1
2

Explicaţii

În primul caz membrii 2 și 3 devin prieteni după o zi, avându-l prieten comun pe membrul 1. Astfel, toate relațiile posibile au apărut după o singură zi. În cel de al doilea caz au apărut următoarele relații in prima zi: (1, 5), (3, 2), (1, 4), (4, 5). În cea de a doua zi, apar și relațiile (3, 5) și (3, 4), rețeaua devenind astfel completă.

Log in or sign up to be able to send submissions!