Sidevõrk | 프로그래밍의 벗 PivotOJ
PivotOJ

Sidevõrk

시간 제한: 3000ms메모리 제한: 1024MB출처: EIO 2020-21 sel2BOJ 29910
이 문제는 본문 이미지 일부가 표시되지 않습니다. 텍스트만으로 풀이가 어려울 수 있습니다.

문제

[이미지 1]Sidevõrk koosneb NN serverist, mis on nummerdatud 1N1 \ldots N, ja N1N - 1 neid ühendavast kaablist. Võrk on sidus: igast serverist on võimalik andmeid edastada igasse teise serverisse. Kui mõni server rikki läheb, siis tema kaudu andmeid edastada ei saa, ja see võib põhjustada häireid ka teiste serverite vahelises sides. Sidefirma tahab hinnata, millised võivad olla tagajärjed, kui rikki läheb korraga kaks serverit.

Kui serverite rikkega jaguneb võrk kk osaks, milles on vastavalt a1a_1, a2a_2, \ldots, aka_k serverit, siis on sellise võrgu sidususkoefitsient C=a12+a22++ak2C = a_1^2 + a_2^2 + \ldots + a_k^2. Näiteks kui kõrvaloleval joonisel kujutatud võrgus lähevad rikki serverid 1 ja 5, jaguneb võrk 33 osaks, kus ühes osas on 22 serverit (2 ja 4), teises osas 55 serverit (3, 6, 11, 12 ja 8) ning kolmandas osas 33 serverit (7, 9 ja 10). Selliselt jagunenud võrgu sidususkoefitsient on seega C=22+52+32=38C = 2^2 + 5^2 + 3^2 = 38.

Kirjutada programm, mis leiab suurima ja vähima võimaliku sidususkoefitsiendi, kui antud võrgus lähevad rikki täpselt kaks serverit.

입력

Sisendi esimesel real on täisarv TT (1T21 \le T \le 2). T=1T = 1 korral peab programm leidma maksimaalse, T=2T = 2 korral aga minimaalse võimaliku sidususkoefitsiendi.

Sisendi teisel real on serverite arv NN (3N1053 \le N \le 10^5).

Järgmisel N1N - 1 real on igaühel kaks täisarvu AiA_i ja BiB_i (1AiN1 \le A_i \le N, 1BiN1 \le B_i \le N), mis näitavad, et kaabel ii ühendab servereid AiA_i ja BiB_i.

출력

Väljastada üks täisarv, vastavalt TT väärtusele sidususkoefitsiendi maksimum või miinumum.

예제

예제 1

입력
2
12
1 2
1 3
2 4
2 5
3 6
3 11
5 7
6 12
6 8
7 9
7 10
출력
28

예제 2

입력
1
4
1 2
2 3
3 4
출력
4
코드를 제출하려면 로그인하세요.