Laiko ribojimas: 1s
Atminties ribojimas: 64MB
Grafo spalvinimas
Barbora visai neseniai pradėjo mokytis grafų teorijos pradmenų. Mergaitė kiek pavargo dėl didelio naujos informacijos kiekio, tad nusprendė padaryti pertrauką. Barbora labai mėgsta spalvinti, todėl ji pasiėmė savo mėgstamą spalvinimo knygelę, atsivertė naują puslapį ir ten pamatė... grafą!
"Ech, juk norėjau nuo grafų pailsėti. Ir šiaip, čia nelabai yra ką spalvinti - neįdomu. Nebent..."
Mergaitė pradėjo galvoti, kaip būtų galima grafą nuspalvinti kuo įdomiau. Ji nusprendė, kad spalvins tik grafo viršūnes, bet ne bet kaip - ji nori, kad gretimos viršūnės visada būtų nuspalvintos skirtingomis spalvomis.
Vis dėlto, ši užduotis Barborai taip pat per lengva - juk tiesiog galima visas viršūnes nuspalvinti skirtingomis spalvomis ir tai tenkins mergaitės sugalvotą salygą... Todėl Barbora nusprendė atrasti, kiek mažiausiai spalvų reikia, kad pavyktų nuspalvinti visas grafo viršūnes pagal sugalvotą taisyklę.
Panagrinėkime pavyzdį. Tarkime, kad Barbora savo knygutėje rado tokį grafą:
Vienas iš galimų būdų nuspalvinti grafo viršūnes yra visas jas spalvinti skirtingomis spalvomis - tuomet prireiks šešių spalvų:
Kai kurias viršūnes galima spalvinti ta pačia spalva, nes jos neturi bendros briaunos. Tada jau užtektų ir penkių spalvų:
Galima pasiekti ir dar geresni rezultatą panaudojus keturias spalvas:
Mažiau spalvų panaudoti neįmanoma. Žemiau pateiktas pavyzdys su trimis spalvomis, tačiau jis nėra tinkamas, nes viršūnes ir jungia briauna, bet jos abi nuspalvintos ta pačia spalva:
Ši užduotis Barborai jau pasirodė kiek per sunki, todėl ji paprašė Jūsų pagalbos. Parašykite programą, kuri rastų, kiek mažiausiai spalvų reikia, kad būtų galima nuspalvinti visas grafo viršūnes taip, kad visos gretimos viršūnės būtų nuspalvintos skirtingomis spalvomis.
Pradiniai duomenys
Pirmoje eilutėje pateikti du sveikieji skaičiai ir - grafo viršūnių ir briaunų kiekiai ().
Toliau pateikta eilučių. -ojoje iš jų yra du tarpu atskirti sveikieji skaičiai ir , reiškiantys, kad tarp viršūnių ir yra briauna. Yra garantuota, kad nebus pasikartojančių briaunų bei kilpų.
Rezultatai
Jūsų programa turi išvesti vieną sveikąjį skaičių - kiek mažiausiai spalvų prireiks, kad pavyktų nuspalvinti visas grafo viršūnes pagal aprašytas taisykles.
Pavyzdžiai
Pradiniai duomenys | Rezultatai | Paaiškinimas |
---|---|---|
6 10 1 2 1 3 1 4 1 5 1 6 2 3 3 4 4 5 5 6 6 2 |
4 |
Pavyzdys atitinka sąlygoje aptartą grafą |
3 1 1 2 |
2 |
|
4 0 |
1 |