Pagini recente » Cod sursa (job #417118) | Cod sursa (job #954156) | Cod sursa (job #58442) | Clasament vestitorul_primaverii | Cod sursa (job #626955)
Cod sursa(job #626955)
#include <queue>
#include<stdio.h>
using namespace std;
int d[100000],n,m,s,viz[100000];
vector<int> l[100000];
int main(){
FILE *f;
int i,x,y;
queue<int> c;
f=fopen("bfs.in","r");
fscanf(f,"%d %d %d",&n,&m,&s);
for(i=0;i<m;i++){
fscanf(f,"%d %d",&x,&y);
l[x-1].push_back(y-1);
}
fclose(f);
for(i=0;i<n;i++)
d[i]=-1;
s--;
c.push(s);
d[s]=0;
viz[s]=1;
while(c.size()>0){
x=c.front();
c.pop();
for(i=0;i<l[x].size();i++)
if(viz[l[x][i]]==0){
c.push( l[x][i]);
viz[l[x][i]]=1;
d[l[x][i]]=d[x]+1;
}
}
f=fopen("bfs.out","w");
for(i=0;i<n;i++)
fprintf(f,"%d ",d[i]);
fclose(f);
return 0;
}