Se consideră o pădure tropicală, reprezentată sub forma unui caroiaj dreptunghiular. Celula din colţul stânga sus al caroiajului are coordonatele (1, 1)
, iar coordonatele celorlalte celule sunt determinate de linia şi coloana pe care se află. În anumite celule ale caroiajului sunt plasaţi bananieri; o celulă conţine cel mult un bananier. Mai mulţi bananieri care se învecinează pe orizontală sau verticală formează o zonă de bananieri. Într-o astfel de zonă, CEKILI se deplasează uşor, cu agilitatea-i cunoscută, de la un bananier la altul.
Maimuţa CEKILI este lacomă şi nu îi ajung bananele dintr-o singură zonă. Tarzan vrea să-şi ajute prietena. Pentru aceasta, el ar putea conecta exact K
zone de bananieri înnodând mai multe liane şi astfel CEKILI s-ar putea deplasa de la o zonă la alta utilizând lianele. Evident, Tarzan trebuie să aleagă zonele astfel încât numărul total de bananieri din cele K zone să fie maxim.
Cerința
Determinaţi numărul maxim de bananieri care se poate obţine prin conectarea a exact K
zone.
Date de intrare
Fișierul de intrare banana.in
conține pe prima linie numerele nr
și K
, unde nr
este numărul de bananieri, iar K
numărul de zone ce pot fi conectate. Pe următoarele nr
linii se găsesc câte două numere x y
reprezentând linia și coloana unde se află un bananier.
Date de ieșire
Fișierul de ieșire banana.out
va conține pe prima linie numărul maxim de bananieri care se poate obţine prin conectarea zonelor.
Restricții și precizări
1 ≤ Nr ≤ 16.000
1 ≤ x, y ≤ 10.000
- În testele utilizate
K
nu va depăşi numărul de zone. - Două poziţii se învecinează pe orizontală dacă sunt pe aceeaşi linie şi pe coloane consecutive, respectiv pe verticală dacă sunt pe aceeaşi coloană şi pe linii consecutive.
Exemplu:
banana.in
10 3 7 10 1 1 101 1 2 2 102 1 7 11 200 202 2 1 3 2 103 1
banana.out
9