Cod sursa(job #486699)

Utilizator costyv87Vlad Costin costyv87 Data 22 septembrie 2010 15:37:10
Problema BFS - Parcurgere in latime Scor 60
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include<stdio.h>
#include<vector>
#include <string.h>

using namespace std;
vector <long> a[100005];

long s[100005],g[100005],cos[100005];

int main() {
memset(cos,-1,100005);
FILE *f,*gg;
long n,m,ss,j,i;
f=fopen("bfs.in","r");
gg=fopen("bfs.out","w");
fscanf(f,"%ld%ld%ld",&n,&m,&ss);
long x,l,y;
for (i=1;i<=m;i++) {
fscanf(f,"%ld%ld",&x,&y);
a[x].push_back(y);
}

for (i=1;i<=n;i++) g[i]=a[i].size();

l=1;
cos[ss]=0;
s[l]=ss;

for (i=1;i<=l;i++)
    for (j=0;j<g[s[i]];j++)
       if (cos[a[s[i]][j]]==-1)
                 {
                  s[++l]=a[s[i]][j];
                  cos[s[l]]=(long)cos[s[i]]+1;
                 }

for (i=1;i<=n;i++)
fprintf(gg,"%ld ",cos[i]);
fclose(gg);
return 0;
}