Pagini recente » Cod sursa (job #410531) | Cod sursa (job #2820645) | Cod sursa (job #2436853) | Cod sursa (job #1283039) | Cod sursa (job #1130567)
#include <fstream>
#include <vector>
#include <queue>
#define mx 100009
using namespace std;
ifstream f("darb.in");
ofstream g("darb.out");
vector<int> A[mx];
queue<int> Q;
int n, cost[mx], Pos, Mx;
bool viz[mx];
void bfs(int S)
{
viz[S]=1;
cost[S]=1;
for(Q.push(S);Q.size();Q.pop())
{
for(int i=0;i<A[Q.front()].size();++i)
{
int actual=A[Q.front()][i];
if(!viz[actual])
{
Q.push(actual);
cost[actual]+=cost[Q.front()]+1;
viz[actual]=1;
Mx=cost[actual];
Pos=actual;
}
}
}
}
void Read()
{
int a,b;
f>>n;
for(int i=1;i<n;++i)
{
f>>a>>b;
A[a].push_back(b);
A[b].push_back(a);
}
}
int main()
{
Read();
bfs(1);
for(int i=0;i<=n;i++)
{ //g<<i<<' '<<cost[i]<<'\n';
viz[i]=0;
cost[i]=0;
}
bfs(Pos);
g<<cost[Pos];
f.close();
g.close();
return 0;
}