Revizia anterioară Revizia următoare
Fişierul intrare/ieşire: | tcast.in, tcast.out | Sursă | ONI 2008 - baraj |
Autor | Mugurel Ionut Andreica | Adăugată de | |
Timp execuţie pe test | 0.225 sec | Limită de memorie | 65536 kbytes |
Scorul tău | N/A | Dificultate | N/A |
Vezi solutiile trimise | Statistici
Tcast
Reteaua de comunicatie a orasului Ploiesti este alcatuita din N noduri, numerotate de la 1 la N. Exista N-1 perechi de noduri intre care exista conexiune directa (aceste noduri sunt denumite vecini). O conexiune directa asigura comunicare in ambele sensuri intre nodurile conectate. Conexiunile directe sunt construite astfel incat oricare doua noduri ale retelei pot comunica (direct, sau indirect, prin intermediul altor noduri).
La momentul de timp 0, nodul 1 are un mesaj pe care doreste sa il trimita tuturor celorlalte noduri. Pentru aceasta, la orice moment de timp intreg t, orice nod x ( 1 ≤ x ≤ N ) care a primit in prealabil mesajul (sau care l-a primit exact la momentul t), il poate trimite unui vecin y al sau care nu a primit inca mesajul. Transmisia mesajului dureaza 1 unitate de timp - asadar, nodul y va primi mesajul la momentul t+1. Un nod poate trimite mesajul catre mai multi vecini ai sai, dar nu simultan.
Din motive de securitate, la anumite momente de timp din intervalul [ 0 , T ), nodurile de comunicatie sunt verificate. Pentru fiecare nod x ( 1 ≤ x ≤ N ) si fiecare moment de timp t ( 0 ≤ t ≤ T-1 ), se cunoaste daca nodul x este verificat sau nu la momentul t. Durata verificarii este de 1 unitate de timp (astfel, daca nodul x este verificat la momentul t, verificarea se termina la momentul t+1 ). La fiecare moment de timp la care un nod este verificat, acesta nu poate trimite nici un mesaj (dar poate primi mesaje de la vecinii sai).
Determinati durata de timp minima dupa care mesajul poate ajunge de la nodul 1 la toate nodurile (in cazul unei strategii optime de distributie a mesajului).
Date de intrare
Prima linie a fisierului de intrare tcast.in contine 2 numere intregi, separate printr-un spatiu: N si T. Urmatoarele N-1 linii contin cate doua numere intregi x si y, separate printr-un spatiu, avand semnificatia ca nodurile x si y sunt vecine in cadrul retelei de comunicatie. Urmatoarele N linii contin cate T numere intregi din multimea { 0, 1 }. Al t-lea numar ( 1 ≤ t ≤ T ) de pe a i -a dintre aceste linii este 1, daca nodul i este verificat la momentul t-1 (si 0 in caz contrar).
Date de iesire
Fisierul de iesire tcast.out va contine o singura linie pe care va fi scrisa durata de timp minima dupa care toate nodurile primesc mesajul, in cazul unei strategii optime de distributie a mesajului.
Restrictii
- 1 ≤ N ≤ 2000
- 1 ≤ T ≤ 1000
- Durata de timp dupa care toate nodurile primesc mesajul poate fi mai mare decat T
Exemplu
tcast.in | tcast.out |
---|---|
6 5 1 2 2 3 3 6 1 4 4 5 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 | 5 |
Explicatie
La momentul 0 nodul 1 este verificat si nu poate transmite mesajul nici unui vecin. La momentul 1, nodul 1 trimite mesajul nodului 4. La momentul 2, nodul 1 trimite mesajul nodului 2, iar nodul 4 trimite mesajul nodului 5. La momentul 3, nodul 2 trimite mesajul nodului 3, iar la momentul 4 nodul 3 trimite mesajul nodului 6. La momentul 5, nodul 6 este ultimul nod care primeste mesajul.