Pagini recente » Cod sursa (job #2279604) | Cod sursa (job #661883) | Cod sursa (job #2521713) | Cod sursa (job #91145) | Cod sursa (job #2738306)
#include <iostream>
#include <fstream>
#include <vector>
#include <bitset>
#include <deque>
#include <cstring>
#include <algorithm>
#define dim 100006
using namespace std;
string file = "darb";
ifstream fin(file + ".in");
ofstream fout(file + ".out");
vector<int> L[dim], lNiv[dim];
bitset<dim> fr;
int n, m, nod1, nod2, x, y, dist[dim], distMax, nodMax;
inline void bfs( int start ){
memset(dist, 0, sizeof(dist));
deque<int> q;
q.push_back(start);
fr.reset();
fr[start] = 1;
while(!q.empty()){
int nod = q.front();
if(distMax < dist[nod]){
distMax = dist[nod];
nodMax = nod;
}
q.pop_front();
for( auto vecin : L[nod] )
if(!fr[vecin]){
q.push_back(vecin);
dist[vecin] = dist[nod] + 1;
fr[vecin] = true;
}
}
}
inline void citire(){
fin>>n;
while(fin>>x>>y){
L[x].push_back(y);
L[y].push_back(x);
}
}
int main(){
citire();
bfs(1);
distMax = 0;
bfs(nodMax);
fout<<distMax+1;
return 0;
}