Cod sursa(job #251831)

Utilizator drag0shSandulescu Dragos drag0sh Data 3 februarie 2009 14:11:26
Problema BFS - Parcurgere in latime Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include <stdio.h>
#include <string.h>
#include <vector>

using namespace std;

FILE *f=fopen("bfs.in","r"),*g=fopen("bfs.out","w");
#define maxn 100010

vector <int> a[maxn];
int n,m,nod,s[maxn],cost[maxn],gg[maxn];

void bfs(int nod){
  int i,j,l;
  memset(cost,-1,sizeof(nod));
  l=1;
  s[l]=nod;
  cost[nod]=0;
  for(i=1;i<=l;i++)
    for(j=0;j<gg[s[i]];j++)
      if(cost[a[s[i]][j]]==-1){
	s[++l]=a[s[i]][j];
	cost[a[s[i]][j]]=cost[s[i]]+1;
    }
}


int main(){
  int i,x,y;
  fscanf(f,"%d %d %d",&n,&m,&nod);
  for(i=1;i<=m;i++){
    fscanf(f,"%d %d",&x,&y);
    a[x].push_back(y);
  }
  for(i=1;i<=n;i++){
    gg[i]=a[i].size();
  }
  for(i=1;i<=n;i++)
    fprintf(g,"%d ",cost[i]);
  fclose(f);
  fclose(g);
  return 0;
}