.campion
conectare | înregistrare | căutare
Pagina principală » Probleme » balaur

ultima problemă
grupă: mică
sursă: OMI 2016
ultimul articol
autor: Prof. Radu Vişinescu
ultimul software
autor: Prof. Emanuela Cerchez
.campion
balaur


Timp maxim de executie/test:
0.1 secunde
Memorie totala disponibila/stiva:
16 MB/1 MB

Balaurii sunt binecunoscuti pentru neplacerile pe care le provoaca participantilor la concursurile de informatica. In trecut, acestia mancau aproximativ jumatate dintre participanti, insa pe masura ce informaticienii au devenit mai inteligenti, balaurii ii ataca in alte moduri, in special ca personaje in cadrul unor probleme neplacut de grele. Unul dintre balauri, cunoscut ca balaurul cu M capete, a decis sa devina vegetarian (dupa multe incercari esuate de a-si satisface foamea prinzand informaticieni). Mai exact, el doreste sa manance toate cele N mere aflate in cele N noduri ale unui arbore. Nodurile arborelui sunt numerotate de la 1 la N, iar radacina acestuia este nodul 1. Marul din radacina arborelui este numit "marul de aur" (datorita calitatilor sale magice de a creste insutit inteligenta celui care mananca din el). Merele din celelalte N-1 noduri sunt mere obisnuite.
Dintre cele M capete ale balaurului, primul cap este "capul principal", iar celelalte sunt "capete secundare". Capul principal, fiind mai destept si mai dezvoltat, trebuie sa manance exact K mere, printre care si marul de aur. Fiecare din celelalte M-1 capete trebuie sa manance cel putin un mar, in asa fel incat toate merele sa fie mancate.
Daca doua mere situate in 2 noduri adiacente din arbore sunt mancate de acelasi cap, atunci capul respectiv va trebui sa manance si muchia dintre cele 2 mere. Pentru fiecare muchie se cunoaste cantitatea de indigestie pe care i-o provoaca balaurului, in caz ca aceasta este mancata de vreun cap. Indigestia totala a balaurului este egala cu suma cantitatilor de indigestie ale muchiilor arborelui mancate de catre capetele acestuia.

Cerinta

Scrieti un program care determina indigestia totala minima astfel incat toate conditiile mentionate sa fie indeplinite.

Date de intrare

Prima linie a fisierului de intrare balaur.in contine 3 numere intregi, separate prin cate un spatiu: N, M si K. Urmatoarele N-1 linii contin cate 3 numere intregi, separate prin cate un spatiu: a, b si x unde a si b reprezinta 2 noduri adiacente in arbore, iar x reprezinta cantitatea de indigestie asociata muchiei respective.

Date de iesire

In fisierul de iesire balaur.out veti afisa indigestia totala minima. Daca balaurul nu poate manca merele astfel incat sa fie indeplinite toate conditiile cerute, afisati -1.

Restrictii si precizari

1 <= N <= 300
2 <= M <= N
1 <= K <= N
Cantitatea de indigestie asociata fiecarei muchii este un numar natural din intervalul [0,105].

Exemplu

balaur.in balaur.out Explicatie

8 2 4
1 2 20
1 3 4
1 4 13
2 5 10
2 6 12
3 7 15
3 8 5

4 In figura se poate vedea arborele din exemplu, avand N=8 noduri (fiecare continand cate un mar) si N-1=7 muchii. Cantitatile de indigestie sunt scrise pe muchii. Considerand ca balaurul are M=2 capete, iar capul principal trebuie sa manance exact K=4 mere, determinam indigestia totala minima ca fiind egala cu 4. Aceasta valoare se obtine in cazul in care capul principal mananca merele aflate in nodurile marcate cu negru din a doua figura, iar cel de-al doilea cap mananca merele din nodurile marcate cu alb. Este inghitita o singura muchie, de catre capul principal, care are cantitatea de indigestie egala cu 4.

As.drd.ing. Mugurel Ionut Andreica
Universitatea Politehnica Bucuresti, Facultatea de Automatica si Calculatoare
mugurel_ionut@yahoo.com

propunător: Prof. Emanuela Cerchez
emanuela.cerchez@gmail.com
Articole recomandate
Probleme recomandate
De la .campion 2007: perechi, teanc, index, light, copaci, teren, pizza, grupe, cod, ecran, drum, soldati, factura, palma, decript, lbd, aven, cs, h, trenuri, sort, spam, complex, parent, holo, tren2, gray, siruri, arce, pasi, cifre, mgo, firma, joc, cartonase, vikingi, anagrame, balbe, vecini, tribile, conflicte, criptmat, mesaj, maxim, magic3, desen, plimbare, cutie, patrate, party, vagoane, robot, astre, trains, numere2, friends, tricouri, furtuna, net, baby, scaune, 3d, axa, bile2, vmem, pahare, termen, sablon, zapada, cuvinte, excursie, hd, pajura, pc, sir, cadere, pioni
De acelaşi autor: autobuze, bile, complex, vmem, kreg, ro, jobs, senzori, echipe, agitatie, center, algebra, tgraf, bcast, promo, asmax, sediu, granita, string, poligon1, csir, lsort, zoo, bombo, ab3, soc, rsp, tcast, tj, lanterna, base3, color, trans, ic, xp, v2d, ppcover, carray, asfalt1, module, gxor
Despre programare dinamică: vedete, fbr, tgv, zeratul, rv, comun, retea, circuit, sumdif, copaci, drum, text, palind, joc, vikingi, rafturi, plimbare, party, pc, pioni, seif, iepuri, numere3, perm, ture, bilete, prop, ro, reduceri, cuburi, invest, cutie2, stalpi, nr2, judete, strict, auto2, tree, jobs, leaves, pstring, program, datorii, senzori, farfurii, joc1, barbie, ambigram, rlcs, cub1, bio, chimie1, otilia, pasune, remi, sir23, tren1, joc5, pachete, echipe, comb, agitatie, ivv, peste, pitici, pipe, shgraf, tabara1, stop, randuri, zidar, log, sant, produs, subsir, cover, bcast, emax, dist, mesaj1, imax, avere, asmax, raft, suma2, joc12, fni, nr4, join, transport, masina3, lsort, microvirus, fat, cafea, echipe1, anticip, bsir, diamant, petrom, evantai, spion, acolor, evo, bombo, lacusta, lant, team, pitici1, numere8, dep, stiva, subgeom, pviz, tir1, cabane, piramida1, mosia, cuvinte1, gaina, materom, sortari, turnuri, trans, politie, codul, dansatori, nkbiti, kperms, treegame, siruri2, 123, jucarii, bradut, joc15, expozitie, text3, ic, echilibru, distsir, kmax, stalpi1, gaz, triunghi2, v2d, cuiburi, mine, orientare, activ, secvbiti, kcons, pokemon, ubergraf, left, acerc, autostrazi, kdist, select, cazare, fluviu, telecomanda, parcela, pion, subs, suma4, sirmax, bdotcom, viena, sablon2, telecab, ikebana, radare, hacker, obstacole, robotel, centrala, verigi, cds, wg, minusk, radioactiv, enigma, jb, efect, maxviz, ripstick, progresii, maxtri, combcuv, blis, subsiruri, mijloc, probleme, unuzero, palindrom1, minerale, speed, zmax, spider, cntgcd, interclasare, bus, pariuri, riglef, fractii2, fall, arbsum, conuri, arbvalmax, procente, metrou
Despre arbori: bonuri, tgv, barfa, votare, arce, trains, bile2, vmem, plopi, caravane, mese, strict, tree, sub, kinder, firma1, albinuta, rlcs, masina, omizi, concurs1, latime, piloti, barca1, arbnr, sirag1, pikachu, arb, logn, maxq, arbore, bcast, mesaj1, traseu, asmax, salvare, tramvai1, omida, sediu, string, tv, izo, zoo, ratina, vitale, camion1, arbfind, cezar1, tcast, dep, curent, spp, frunze, sea2, culori, color, urgenta, nori, treegame, antipatie, scanduri, minuni, arb1, activ, regat, kdtree, autostrazi, carray, trenuri1, arbgraf, war, mess, secvnumber, subs, posta, radare, arbore1, hacker, lista, codarb, subsecvente, confuzie, transform, arbsum, copaci3, arbvalmax
surse trimise | ajutor