Pagini recente » Cod sursa (job #85609) | Cod sursa (job #1664185) | Cod sursa (job #1250070) | Cod sursa (job #1331441) | Cod sursa (job #361301)
Cod sursa(job #361301)
#include<stdio.h>
#include<vector>
#define max 100001
#define pb push_back
using namespace std;
vector< vector <int> > a(max);
int q[max];
int c[max];
int n,m,st;
int dim;
void data(){
FILE *f=fopen("bfs.in","r");
fscanf(f,"%d%d%d",&n,&m,&st);
int x,y;
for( ; m-- ; ){
fscanf(f,"%d%d",&x,&y);
a[x].pb(y);
}
}
void bfs(int start){
memset(c,-1,sizeof(c));
int i,j;
dim = 1;
c[ start ] = 0;
q[ dim ] = start;
for( i=1; i<= dim ; i++)
for( j=0; j< a[ q[i] ].size(); j++)
if( c[a[q[i]][j]] == -1 ) {
q[++dim] = a[ q[i] ][j];
c[ q[dim] ] = c[ q[i] ] + 1;
}
}
int main(){
FILE *g=fopen("bfs.out","w");
data();
bfs(st);
int i;
for(i = 1;i<=n; i++) fprintf(g,"%d ",c[i]);
return 0;
}