Pagini recente » Cod sursa (job #1116712) | Cod sursa (job #1109892) | Cod sursa (job #1892753) | Cod sursa (job #1974562) | Cod sursa (job #2711468)
#include <bits/stdc++.h>
using namespace std;
ifstream f("darb.in");
ofstream g("darb.out");
///1A
int n;
vector < int > v[100005];
int a,b;
int viz1[100005],viz2[100005];
int dist[100005],dmax[100005];
queue < int > q;
int ultnod,nod;
int main()
{
f >> n;
for (int i=1;i<n;i++) {
f >> a >> b;
v[a].push_back(b);
v[b].push_back(a);
}
q.push(1);
dist[1]=1;
viz1[1]=1;
while (q.empty()==0) {
nod = q.front();
q.pop();
for (auto nodtoviz:v[nod]) {
if (viz1[nodtoviz]==0) {
viz1[nodtoviz] = 1;
dist[nodtoviz] = dist[nod] + 1;
ultnod = nodtoviz;
q.push(nodtoviz);
}
}
}
q.push(ultnod);
dmax[ultnod] = 1;
viz2[ultnod] = 1;
while (q.empty()==0) {
nod = q.front();
q.pop();
for (auto nodtoviz:v[nod]) {
if (viz2[nodtoviz]==0) {
viz2[nodtoviz] = 1;
dmax[nodtoviz] = dmax[nod] + 1;
ultnod = nodtoviz;
q.push(nodtoviz);
}
}
}
g << dmax[ultnod];
return 0;
}