Mai intai trebuie sa te autentifici.
Cod sursa(job #1568831)
Utilizator | Data | 14 ianuarie 2016 19:02:09 | |
---|---|---|---|
Problema | Diametrul unui arbore | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.65 kb |
#include <fstream>
#include <vector>
#include <cstring>
#define N 100010
using namespace std;
ifstream f("darb.in");
ofstream g("darb.out");
vector<int> v[N];
int n,i,j,k,a,sol,niv[N],Q[N],bfs(int);
int main()
{
f>>n;
for(i=2;i<=n;i++)
{
f>>j>>k;
v[j].push_back(k);
v[k].push_back(j);
}
bfs(1);
g<<bfs(Q[n]);
return 0;
}
int bfs(int nod)
{
memset(niv,0,sizeof(niv));
Q[1]=nod;niv[nod]=1;
for(i=1,j=2;i<=n;i++)
for(auto it:v[Q[i]])
if(!niv[it])
{
niv[it]=niv[Q[i]]+1;Q[j++]=it;
}
return niv[Q[n]];
}