TAKMIČENJA IZ PROGRAMIRANJA


Sva pitanja, predloge ili primedbe u vezi sa takmičenjima iz programiranja možete slati na e-mail:

tak.prog@gmail.com

U toku perioda za žalbe, sve žalbe možete slati na ovaj isti e-mail.

kfree.tests.7z    90,883 b      test primeri

zadatak: Kfree

Data je povezana mreža n gradova i neki od gradova su međusobno povezani dvosmernim putevima. Rastojanje između dva grada se određuje kao najmanji broj puteva koje treba preći da bi stigli iz jednog grada u drugi. Za skup gradova kažemo da je k-slobodan ako je udaljenost svaka dva grada iz tog skupa strogo veća od k. Vaš zadatak je da odredite što veći k-slobodan skup.

Za ovaj zadatak potrebno je da predate izlazne datoteke za 10 ulaznih datoteka kfree.01.in, kfree.02.in, ..., kfree.10.in, koji se nalaze u arhivi na računaru. Izlazi se pamte u datoteke kfree.01.out, kfree.02.out, ..., kfree.10.out, pri čemu broj u nazivu izlazne datoteke odgovara broju u nazivu ulazne datoteke.

Ulaz:

U prvom redu se nalaze prirodni brojevi n, m i k, koji redom predstavljju broj gradova, broj puteva i parametar k ≥ 1. U sledećih m redova se nalaze po dva različita broja a i b (1 ≤ a, bn), koji predstavljaju puteve. Gradovi su oznaqeni brojevima od 1 do n.

Izlaz:

U prvom redu ispisati veličinu k-slobodnog skupa. U sledećem redu ispisati indekse gradova koji pripadaju k-slobodnom skupu.

Primer 1:

11 12 2
1 3
2 3
3 4
4 5
4 6
5 7
6 9
7 8
8 9
8 10
9 10
7 11
        
3
1 6 11

Objašnjenje.

Ako odaberemo gradove 1, 6 i 11 lako zaključujemo da su gradovi 1 i 11 na rastojanju 4, gradovi 1 i 6 na rastojanju 3 i gradovi 11 i 6 na rastojanju 4. Kako su sva rastojanja strogo veća od 2, dati skup je 3-slobodan.

Ocenjivanje.

Broj bodova za svaki test primer se određuje na sledeći način. Neka je VAL veličina vašeg k-slobodnog skupa, a OTP je maksimalna veličina k-slobodnih skupova među svim takmičarskim rešenjima, uključujući i komisijsko rešenje. Broj bodova za svaki test primer se računa na sledeći način: ako je OTP = VAL dobijate 10 poena, ako je OTP = VAL+1 dobijate 8 poena, ako je OTP = VAL+2 dobijate 7 poena, ako je OTP = VAL+3 dobijate 4 poena, ako je OTP = VAL + 4 dobijate 3 poena, ako je OTP = VAL + 5 dobijate 1 poen i ako je OTPVAL + 6 dobijate 0 poena.