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

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


Timp maxim de execuţie / test:
5.5s
Memorie totala disponibilă / stivă:
16MB / 1MB

N calculatoare, numerotate de la 1 la N, sunt interconectate într-o reţea. Calculatorul 1 deţine nişte informaţii pe care doreşte să le transmită tuturor celorlalte calculatoare (acest tip de transmisie de informaţii este cunoscut sub numele de broadcast). Pentru aceasta, programul care rulează pe calculatorul 1 trebuie să stabilească o strategie inteligentă de transmitere a informaţiilor, astfel încât acestea să ajungă la toate celelalte calculatoare într-un timp cât mai scurt. Oricare două calculatoare pot comunica între ele şi se cunoaşte durata de transmisie a informaţiilor de la orice calculator i la orice calculator j (durata transmisiei de la i la j poate fi diferită de durata transmisiei de la j la i). Din momentul în care un calculator i a primit informaţiile, acesta le poate transmite mai departe altor calculatoare. La orice moment de timp, un calculator poate transmite informaţii numai unui singur alt calculator. Aşadar, dacă un calculator i doreşte să transmită informaţii calculatoarelor j şi k, el va trebui să transmită întâi informaţiile calculatorului j, iar după ce acestea au fost recepţionate (după o durată de timp egală cu durata transmisiei de la i la j), ele pot fi transmise apoi calculatorului k. În mod evident, transmisiile între două perechi diferite de calculatoare se pot realiza în paralel. Durata de timp după care informaţiile ajung la toate calculatoarele este cel mai mare moment de timp la care un calculator primeşte informaţiile (considerând că procesul de transmitere a informaţiilor începe la momentul 0).

Cerinţă

Determinaţi durata de timp minimă (corespunzătoare unei strategii inteligente de broadcast) după care informaţiile ajung la toate calculatoarele.

Date de intrare

Fişierul de intrare bcast.in conţine pe prima linie numărul natural T, reprezentând numărul de seturi de date de test. În continuare, urmează descrierea celor T seturi. Prima linie din cadrul fiecărui set de test conţine numărul natural N, reprezentând numărul de calculatoare. Următoarele N linii conţin câte N numere întregi, separate prin câte un spaţiu. Al j-lea număr de pe a i-a dintre aceste linii conţine durata de transmisie a informaţiilor de la calculatorul i la calculatorul j. Durata transmisiei de la un calculator la el însuşi va fi întotdeauna egală cu 0.

Date de ieşire

În fişierul bcast.out veţi afişa T linii, câte una pentru fiecare set de date de test. Pe linia i va fi scris un număr natural Tmin reprezentând durata minimă după care informaţiile pot ajunge la toate calculatoarele pentru al i-lea set de test din fişierul de intrare.

Restricţii

1 ≤ T ≤ 10
1 ≤ N ≤ 12
0 ≤
Durata de transmisie a informaţiilor de la un calculator i la un calculator j ≤ 10000

Exemple

bcast.inbcast.outExplicaţii
2 4 0 4 2 1 4 0 16 13 7 8 0 9 10 11 3 0 2 0 0 10 0 5 0 În cazul primului set de test, la momentul 0, calculatorul 1 începe să trimită informaţiile calculatorului 4 (transmisia durează până la momentul 1). La momentul 1, calculatorul 1 începe să transmită informaţiile calculatorului 2 (transmisia durează până la momentul 5), iar calculatorul 4 începe să transmită informaţiile calculatorului 3 (transmisia durează până la momentul 4). Momentele de timp la care cele 4 calculatoare află informaţiile sunt : 0, 5, 4 şi 1.
În cazul celui de-al doilea set de test, la momentul 0 calculatorul 1 începe să transmită informaţiile calculatorului 2, iar transmisia se termină tot la momentul 0.

autor: Mugurel Ionuţ Andreica
propunător: Prof. Emanuela Cerchez
Liceul de Informatica ″Grigore Moisil″
emanuela.cerchez@gmail.com
Articole recomandate
Probleme recomandate
De la LOT SV 2007: cladiri, emax, mesaj1, patrate4, turism, zuzu
De acelaşi autor: autobuze, bile, complex, balaur, vmem, kreg, ro, jobs, senzori, echipe, agitatie, center, algebra, tgraf, 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, balaur, 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, 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, balaur, 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, 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
Despre operaţii pe biţi: barfa, cod, gray, cartonase, plimbare, excursie, xor, vector, ro, nrbinar, radio, chimie2, dans, metro, caini, newcomp, viteza, aritma, pereti, morse, paritate, gradina, xor2, game1, efect, gxor, lgdrum, qtri, patrate7, panda, cript
surse trimise | ajutor