Pagini recente » Cod sursa (job #2174285) | Cod sursa (job #1570963) | Cod sursa (job #2012434) | Cod sursa (job #2262451) | Cod sursa (job #1712469)
#include <bits/stdc++.h>;
#define nmax 100014
using namespace std;
vector<int>arb[nmax];
queue<int>c;
int dist[nmax],n,x,y,aux,lungime,i;
int main()
{
ifstream f("darb.in");
ofstream g("darb.out");
f>>n;
for(int i=1;i<=n;i++)
{
f>>x>>y;
arb[x].push_back(y);
arb[y].push_back(x);
}
for(int i=2;i<=n;i++)
dist[i]=1<<30;
dist[1]=0;
c.push(1);
while(c.empty()==0)
{
int nod=c.front();
c.pop();
for(auto vecin:arb[nod])
{
if(dist[vecin]>dist[nod]+1)
{
dist[vecin]=dist[nod]+1;
c.push(vecin);
}
}
}
sort(dist+1,dist+n+1);
lungime=dist[n];
c.push(n);
while(c.empty()==0)
{
int nod=c.front();
c.pop();
for(auto x:arb[nod])
{
if(dist[x]>dist[nod]+1)
{
dist[x]=dist[nod]+1;
c.push(x);
}
}
}
sort(dist+1,dist+n+1);
lungime=lungime+dist[n];
g<<lungime;
return 0;
}