Pagini recente » Cod sursa (job #1542590) | Cod sursa (job #1918467) | Cod sursa (job #45708) | Cod sursa (job #1334210) | Cod sursa (job #854073)
Cod sursa(job #854073)
#include<fstream>
#include<vector>
#include <stdio.h>
using namespace std;
FILE *f=fopen("bfs.in","r"), *g=fopen("bfs.out","w");
int v[100001];
vector <int> lv[100005];
int n,m,s;
int q[100005];
int main()
{
int i;
fscanf(f,"%d%d%d", &n, &m, &s);
for( i = 1; i <= m; i++)
{
int x,y;
fscanf(f,"%d%d", &x, &y);
lv[x].push_back(y);
}
int u,p;
u=1;
q[u]=s;
v[s]=1;
p=0;
while(p<u)
{ p++;
for( i = 0; i < lv[q[p]].size(); i++ )
if( !v[lv[q[p]][i]] )
{
v[lv[q[p]][i]]=v[q[p]]+1;
q[++u]=lv[q[p]][i];
}
}
for( i = 1; i <= n; i++ )
fprintf(g, "%d ", v[i]-1);
}