Pagini recente » Cod sursa (job #2094912) | Cod sursa (job #45266) | Cod sursa (job #1834850) | Cod sursa (job #3282152) | Cod sursa (job #855902)
Cod sursa(job #855902)
#include<cstdio>
#include<cstdlib>
#include<vector>
#define maxn 100001
using namespace std;
FILE*f=fopen("bfs.in","r");
FILE*g=fopen("bfs.out","w");
vector<int>v[maxn];
int coada[maxn],st,dr,n,m,s,i,a,b,viz[maxn],nod;
int main()
{
fscanf(f,"%d%d%d",&n,&m,&s);
for (i=1;i<=m;i++)
{
fscanf(f,"%d%d",&a,&b);
v[a].push_back(b);
}
st=1;dr=1;
coada[st]=s;
for (i=1;i<=n;i++)
viz[i]=-1;
viz[s]=0;
while (st<=dr)
{
nod=coada[st];
for (i=0;i<v[nod].size();i++)
if (viz[v[nod][i]]==-1)
{
viz[v[nod][i]]=viz[nod]+1;
dr++;
coada[dr]=v[nod][i];
}
st++;
}
for (i=1;i<=n;i++)
fprintf(g,"%d ",viz[i]);
return 0;
}