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

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


Timp maxim de executie/test:
1.4 secunde
Memorie totala disponibila/stiva:
20 MB/1 MB

In România anilor 2100 structura interna a companiilor a "evoluat" în asa fel încât fiecare angajat nu are doar un sef. Angajatul poate avea mai multi sefi sau nici unul. Totusi un lucru înca se pastreaza. Mergând pe orice lant de sefi nimeni nu este propriul sau sef.

Ca în orice companie, uneori apar divergente de opinii care sunt mediate de seful comun. Acuma însa o pereche de angajati nu are doar un sef. Dupa câtiva ani de experimentari s-a ajuns la concluzia ca cel mai bine este sa se apeleze la un singur sef si anume cel care poate lua o decizie si o poate comunica angajatilor aflati în conflict cel mai repede. Din fericire în România deciziile se iau imediat, însa din nefericire comunicarea deciziilor luate se face foarte greu.

Astfel comunicarea se face numai între angajati pentru care exista o subordonare directa. Fiecare astfel de comunicare are un timp asociat, iar comunicarea deciziei catre cei 2 angajati se face pe rând. Adica se asteapta pâna când unul dintre angajati a aflat de decizie si dupa aceea se începe comunicarea catre al doilea angajat.

Cerinta
Date fiind relatiile dintre angajati si durata comunicarii unei decizii pentru fiecare astfel de relatie se cere determinarea timpului minim pentru a ajunge la un compromis, pentru mai multe perechi de angajati.

Date de intrare
Fisierul de intrare conflicte.in contine pe prima linie trei numere naturale nenule N, M si Q, reprezentând numarul de angajati, numarul de relatii directe de subordonare si numarul de perechi de angajati aflati în conflict.
Pe urmatoarele M linii se afla câte 3 numere: S, D, C reprezentând o relatie directa de subordonare: seful S, subordonatul D si costul comunicarii unei decizii C.
Angajatii sunt numerotati de la 1 la N.
Pe urmatoarele Q linii se afla câte doua numere întregi, reprezentând perechi de angajati care se afla în conflict.

Date de iesire
Fisierul de iesire conflicte.out contine Q linii. Pe linia i este scris un numar intreg reprezentând costul minim pentru rezolvarea conflictului dintre angajatii din cea de a i-a pereche (consdierand ordinea perechilor din fisierul de intrare) sau valoarea -1, daca pentru angajatii din perechea i nu exista un sef comun.

Restrictii si precizari
1 <= N <= 1 000
1 <= M <= 50 000
1 <= Q <= 50 000
0 <= C <= 1 000

între orice pereche de angajati exista maxim o relatie de subordonare directa.

Exemplu

conflicte.in conflicte.out Explicatii

5 6 4
1 2 1
4 1 1
4 3 100
4 5 0
3 5 2
3 2 104
1 3
2 5
2 3
4 5

101
2
102
0
 
Pentru perechea de angajati (1, 3) decizia este luata de 4. Costul este 1 + 100 = 101
Pentru perechea de angajati (2, 5) decizia este luata de 4. Costul este (1 + 1) + 0 = 2
Pentru perechea de angajati (2, 3) decizia este luata de 4. Costul este (1 + 1) + 100 = 102
Pentru perechea de angajati (4, 5) decizia este luata de 4. Costul este 0.

Marius Andrei
Google Inc
marsamg@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, balaur, tribile, 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: cadere, leaves, na, distanta, ivv, aparitii, tabara1, stop, hanoi, logn, cuburi1, viteza, masina3, anticip, cabane, spp, regine, comoara2, perle, cuvinte1, sortari, triti
Despre graf: gropi, tgv, matrice2, miniasm, picnic, mere, circuit, soldati, arce, desen, robot, furtuna, net, cuvinte, excursie, cadere, pioni, reinvent, kreg, flood, croco, johnie, matrice, arthur, kimberley, ro, sol, caravane, bete, honest, police, pcod, zmeu, auto2, grazing, datorii, trafic, sponsori, monede1, apm, bile1, caini, masina1, bomboane, turn1, shgraf, paintball, program1, tgraf, kgb, algola, felinar, joc6, tric, homeless, promo, turism, casute, joc10, prieteni1, traseu, zapezi, litoral, lover, trip, garaj, ziduri, tv, pact, echipe1, vitale, spion, trasee, bcolor, scara2, lant, ab3, soc, team, gard, rsp, graf, mexc, dep, albinuta1, atac2, cabane, drumuri, tj, grade, jungla, lanterna, magic5, coment, urgenta, fazan, lanturi, cfr, site, traseu1, trmv, graphgame, minuni, telefon, ubergraf, carray, pestera, chei, arbgraf, war, fluviu, drumuri1, entries, ubuntzei, pack, fotbal1, pamant, dag, razboi, benzina2, wg, neconex, asfalt1, kubus2, module, progresii, dfs, prieteni3, megascoala, grafxy, dineu, vot1, biperm, drumuri2, nrgraf, cristal, cartite, copaci3, dragoni, nuclee
surse trimise | ajutor