Mai intai trebuie sa te autentifici.

Cod sursa(job #2474268)

Utilizator Dragos1226Dragos Chileban Dragos1226 Data 14 octombrie 2019 22:05:32
Problema Zvon Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.02 kb
#include <bits/stdc++.h>
using namespace std;
ifstream in("zvon.in");
ofstream out("zvon.out");
const int Nmax = 100000;
vector <int> G[Nmax+5];
queue <int> Q;

int N, T, d[Nmax+5];

void BFS(int Node) {
    Q.push(Node);
    d[Node] = 0;

    int dmax = 0, nr=0;
    while (!Q.empty()) {
        int Nod = Q.front();
        for (int i = 0; i < G[Nod].size(); i++) {
            int Vecin = G[Nod][i];
            d[Vecin] = d[Nod] + 1;
            Q.push(Vecin);
        if (d[Vecin] > dmax) {
                dmax = d[Vecin];
                nr=1;
        }
        else
            if(d[Vecin] == dmax)
                nr++;
        }
        Q.pop();
    }

    out <<  dmax + nr/2 << '\n';
}

int main () {
    in >> T;

    for (int i = 0; i < T; i++) {
        in >> N;
        for (int i = 0, x, y; i < N-1; i++) {
            in >> x >> y;
            G[x].push_back(y);
        }
        BFS(1);
        for (int i = 1; i <= N; i++)
            G[i].clear();
    }
    return 0;
}