Pagini recente » Cod sursa (job #2068718) | Cod sursa (job #527755) | Cod sursa (job #1187704) | Cod sursa (job #2406245) | Cod sursa (job #2251029)
#include <iostream>
#include <fstream>
#include <vector>
#define DIM 100010
using namespace std;
int n,s=1,x,y,coada[DIM],p,f[DIM],fv[DIM],q,lm,s2,r,st,dist[DIM];
vector <int> a[DIM];
void umple(int v[], int n){
for(int i=0;i<=105;i++)
v[i]=n;
}
int main () {
ifstream fin("darb.in");
ofstream fout("darb.out");
fin>>n;
while(fin>>x>>y){
a[x].push_back(y);
a[y].push_back(x);
}
p=1;
coada[p]=s;
f[s]=1;
//fout<<coada[p]<<" ";
while(lm<=p){
fv[coada[lm]]=1;
q=coada[lm];
lm++;
for(int i=0;i<a[q].size();i++){
if(f[a[q][i]]==0){
s2=a[q][i];
//cout<<a[q][i]<<" ";
f[a[q][i]]=1;
if(fv[a[q][i]]==0){
coada[++p]=a[q][i];
lm=1;
fv[a[q][i]]=1;
}
}
}
}
umple(f,0);
umple(fv,0);
umple(coada,0);
p=1;
coada[p]=s2;
f[s2]=1;
lm=0;
//fout<<coada[p]<<" ";
while(lm<=p){
fv[coada[lm]]=1;
q=coada[lm];
lm++;
st=q;
for(int i=0;i<a[q].size();i++){
if(f[a[q][i]]==0){
s2=a[q][i];
//cout<<a[q][i]<<" ";
dist[a[q][i]]=dist[st]+1;
f[a[q][i]]=1;
if(fv[a[q][i]]==0){
coada[++p]=a[q][i];
lm=1;
fv[a[q][i]]=1;
}
}r++;
}
}
fout<<dist[s2]+1;
return 0;
}