Cod sursa(job #1416202)
Utilizator | marian BKmarian | Data | 7 aprilie 2015 16:56:35 |
---|---|---|---|
Problema | Diametrul unui arbore | Scor | 40 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.71 kb |
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("darb.in");
ofstream g("darb.out");
int a[100001],t[100001],x,y,i,j,n,nr,max1,max2;
int main()
{
f>>n;
for(i=1;i<n;i++)
{
f>>x>>y;
t[y]=x;
a[x]++;
a[y]++;
}
for(i=1;i<=n;i++)
{
if(a[i]==1)
{
nr=0;
j=i;
while(t[j])
{
nr++;
j=t[j];
}
if(max1<nr)
{
max2=max1;
max1=nr;
}
else
if(max1>nr && max2<nr)
max2=nr;
}
}
g<<max1+max2+1;
}