Kuģu skaits

ID: kugusk
Grūtība: 4/5
Laika limits: 2

Uzdevums

"Kuģu" spēles laukums sastāv no N*N rūtiņām. Katra rūtiņa var būt brīva vai piederēt kādam kuģim. Ja divas rūtiņas pieder kādam kuģim un tām ir kopīga mala, tad abas rūtiņas pieder vienam un tam pašam kuģim. Dažādiem kuģiem piederošām rūtiņām nav kopīgu punktu. Kuģa tonnāža ir šim kuģim piederošo rūtiņu skaits.

Dotajā piemērā kuģiem piederošās rūtiņas ir iekrāsotas melnas un uz laukuma ir izvietots viens 29-tonnīgs, trīs septiņtonnīgi, divi četrtonnīgi un trīs vientonnīgi kuģi.

Uzrakstiet programmu, kas dotajam laukuma aprakstam nosaka uz tā izvietoto kuģu skaitu un tonnāžu!

 

Ievaddati

Teksta faila kugusk.dat pirmajā rindā dota naturāla skaitļa N(N<30000) vērtība. Katrā no nākošajām N faila rindām dota informācija par vienu spēles laukuma rindu, pēc kārtas aprakstot kuģiem piederošās rūtiņas no kreisās uz labo pusi vienā no diviem iespējamajiem formātiem:

Rūtiņu grupas tiek atdalītas ar komatu, katras rindas beigās ir semikols. Faila rindās nav tukšumsimbolu. Ja kādā laukuma rindā nav nevienas kuģim piederošas rūtiņas, tad atbilstošajā rindā failā ir tikai semikols. Ir zināms, ka kuģu kopskaits nepārsniedz 1000 un neviena kuģa tonnāža nepārsniedz 1000.

 

Izvaddati

Teksta failā kugusk.rez jāizvada informācija par izvietotajiem kuģiem. Katrā rindā jāizvada divi naturāli skaitļi, kas atdalīti ar tukšumsimbolu. Pirmajam skaitlim jābūt kuģa tonnāžai, bet otrajam - kuģu skaitam ar šo tonnāžu. Tonnāžām failā jābūt izvadītām dilstošā secībā un tonnāža jāizvada tikai tad, ja ir vismaz viens kuģis ar šo tonnāžu.

 

Piemērs

kugusk.datkugusk.rez
12
2-4,7,9;
1,4,11-12;
1,4,10,12;
1,4-8,10-12;
1,8;
1,3-6,8,10-12;
1,3,5-6,8,11;
1,8,10-12;
1-8;
;
2;
2-4,7-10,12;
29 1
7 3
4 2
1 3

 

Atsauces

Uzdevums izmantots Baltijas 10.informātikas olimpiādē Ventspilī 2004.gadā Autors: Mārtiņš Opmanis
© 2001-2002 olimps! http://www.lio.lv/olimps/