bcast

Time limit: 2s Memory limit: 16MB Input: bcast.in Output: bcast.out

NN calculatoare, numerotate de la 11 la NN, sunt interconectate într-o reţea. Calculatorul 11 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 11 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 ii la orice calculator jj (durata transmisiei de la ii la jj poate fi diferită de durata transmisiei de la jj la ii). Din momentul în care un calculator ii 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 ii doreşte să transmită informaţii calculatoarelor jj şi kk, el va trebui să transmită întâi informaţiile calculatorului jj, iar după ce acestea au fost recepţionate (după o durată de timp egală cu durata transmisiei de la ii la jj), ele pot fi transmise apoi calculatorului kk. Î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 00).

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 TT, reprezentând numărul de seturi de date de test. În continuare, urmează descrierea celor TT seturi. Prima linie din cadrul fiecărui set de test conţine numărul natural NN, reprezentând numărul de calculatoare. Următoarele NN linii conţin câte NN numere întregi, separate prin câte un spaţiu. Al jj-lea număr de pe a ii-a dintre aceste linii conţine durata de transmisie a informaţiilor de la calculatorul ii la calculatorul jj. Durata transmisiei de la un calculator la el însuşi va fi întotdeauna egală cu 00.

Date de ieșire

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

Restricții și precizări

  • 1T101 \leq T \leq 10;
  • 1N121 \leq N \leq 12;
  • 00 \leq Durata de transmisie a informaţiilor de la un calculator ii la un calculator j10 000j \leq 10 \ 000

Exemplu

bcast.in

2
4
0 4 2 1
4 0 16 13
7 8 0 9
10 11 3 0
2
0 0
10 0

bcast.out

5
0

Explicație

În cazul primului set de test, la momentul 00, calculatorul 11 începe să trimită informaţiile calculatorului 44 (transmisia durează până la momentul 11). La momentul 11, calculatorul 11 începe să transmită informaţiile calculatorului 22 (transmisia durează până la momentul 55), iar calculatorul 44 începe să transmită informaţiile calculatorului 33 (transmisia durează până la momentul 44). Momentele de timp la care cele 44 calculatoare află informaţiile sunt : 00, 55, 44 şi 11.
În cazul celui de-al doilea set de test, la momentul 00 calculatorul 11 începe să transmită informaţiile calculatorului 22, iar transmisia se termină tot la momentul 00.

Log in or sign up to be able to send submissions!