Pagini recente » Diferente pentru preoni-2007/runda-4/solutii intre reviziile 26 si 34 | Istoria paginii runda/training_day_5/clasament | Istoria paginii runda/hc/clasament | Istoria paginii runda/drum-bugetat/clasament | Cod sursa (job #2072956)
#include <bits/stdc++.h>
#define Nmax 100011
using namespace std;
int v,m,viz[Nmax],k,stiva[Nmax],st=1,dr=1,dists,distante[Nmax],dist;
vector <int> adj[Nmax];
void bfs (int nod,int dist)
{
if (dist<distante[nod] || distante[nod]==-1)
{
for (int i=1;i<adj[nod].size();++i)
{
bfs(adj[nod][i],dist+1);
}
}
}
int main()
{
ifstream fin ("bfs.in");
ofstream fout ("bfs.out");
fin>>v>>m>>s;
for (int i=1;i<=m;++i)
{
int a,b;
fin>>a>>b;
adj[a].push_back(b);
}
for (int i=1;i<=v;++i)
{
distante[i]=-1;
}
bfs(s,0);
for (int i=1;i<=n;++i)
{
fout<<distante[i]<<" ";
}
}