Cod sursa(job #850636)

Utilizator marialivia16Chiorean Maria Livia marialivia16 Data 8 ianuarie 2013 18:23:15
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.96 kb
#include<cstdio>
#include<cstdlib>
#include<vector>
#define MAXN 100001
using namespace std;
int sel[MAXN],q[MAXN];
vector<int> v[MAXN];
int main()
{
    freopen("bfs.in","r",stdin);
    freopen("bfs.out","w",stdout);
    int n,m,s,i,a,b;
    scanf("%d%d%d",&n,&m,&s);
    for(i=1;i<=m;i++)
    {
                     scanf("%d%d",&a,&b);
                     v[a].push_back(b);
    }
    a=1;
    sel[s]=1;
    q[a]=s;
    b=0;
    while(b<a)
    {
              b++;
              for(i=0;i<v[q[b]].size();i++)
              {
                                           if(!sel[v[q[b]][i]])
                                           {
                                                               sel[v[q[b]][i]]=sel[q[b]]+1;
                                                               q[++a]=v[q[b]][i];
                                           }
              }
    }
    for(i=1;i<=n;i++)
    printf("%d ",sel[i]-1);
    return 0;
}