Pagini recente » Cod sursa (job #2259061) | Cod sursa (job #365816) | Cod sursa (job #1072874) | Istoria paginii utilizator/upb_andritoiu_nitu | Cod sursa (job #3250045)
#include <bits/stdc++.h>
using namespace std;
string file="darb";
ifstream fin(file+".in");
ofstream fout(file+".out");
set<int> g[100001];
vector<int> b;
void bfs(int i)
{
queue<int> q;
q.push(i);
b[i]=1;
while (!q.empty()){
i=q.front();
q.pop();
for (auto j:g[i]){
if (!b[j]){
q.push(j);
b[j]=b[i]+1;
}
}
}
}
int main()
{
int n;
fin>>n;
b.resize(n+1);
int x, y;
while(fin>>x>>y){
g[x].insert(y), g[y].insert(x);
}
int maxim=0;
bfs(1);
for (int i=1; i<=n; i++){
for (int j=1; j<=n; j++){
if (i!=j)maxim=max(maxim, b[i]+b[j]-1);
}
}
fout<<maxim;
return 0;
}