== include(page="template/taskheader" task_id="tcast") ==
Poveste si cerinta...
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 întreg 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 încă mesajul. Transmisia mesajului durează $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 comunicaÅ£ie sunt verificate. Pentru fiecare nod $x$ ($1 ≤ x ≤ N$) si fiecare moment de timp $t$ ($0 ≤ t ≤ T-1$), se cunoaÅŸte dacă 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 termină 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 săi).
Determinaţi durata de timp minimă după care mesajul poate ajunge de la nodul $1$ la toate nodurile (în cazul unei strategii optime de distribuţie a mesajului).
h2. Date de intrare
Fisierul de intrare $tcast.in$ ...
Prima linie a fiÅŸierului de intrare $tcast.in$ conÅ£ine $2$ numere întregi, separate printr-un spaÅ£iu: $N$ ÅŸi $T$. Următoarele $N-1$ linii conÅ£in câte două numere întregi $x$ ÅŸi $y$, separate printr-un spaÅ£iu, având semnificaÅ£ia că nodurile $x$ ÅŸi $y$ sunt vecine în cadrul reÅ£elei de comunicaÅ£ie. Următoarele $N$ linii conÅ£in câte $T$ numere întregi din mulÅ£imea { $0$, $1$ }. Al t-lea număr ($1 ≤ t ≤ T$) de pe a $i$ -a dintre aceste linii este $1$, dacă nodul $i$ este verificat la momentul $t-1$ (ÅŸi $0$ în caz contrar).
h2. Date de iesire
In fisierul de iesire $tcast.out$ ...
Fişierul de ieşire $tcast.out$ va conţine o singură linie pe care va fi scrisă durata de timp minimă după care toate nodurile primesc mesajul, în cazul unei strategii optime de distribuţie a mesajului.
h2. Restrictii
* $... ≤ ... ≤ ...$
* $1 ≤ N ≤ 2000$
* $1 ≤ T ≤ 1000$
* Durata de timp după care toate nodurile primesc mesajul poate fi mai mare decât $T$
h2. Exemplu
table(example). |_. tcast.in |_. tcast.out |
| This is some
text written on
multiple lines.
| This is another
text written on
multiple lines.
| 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
|
h3. Explicatie
...
La momentul $0$ nodul $1$ este verificat ÅŸi 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.
== include(page="template/taskfooter" task_id="tcast") ==