Cod sursa(job #2195418)

Utilizator ivan.tudorIvan Tudor ivan.tudor Data 16 aprilie 2018 13:11:06
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 kb
#include <iostream>
#include<cstdio>
#include<vector>
using namespace std;
vector <int> v[100005];
int q[100005];
int dist[100005];
int main()
{
    int x1,x2,s,n,m,i,st=1,dr=0;
    FILE*fin,*fout;
    fin=fopen("bfs.in","r");
    fout=fopen("bfs.out","w");
    fscanf(fin,"%d%d%d",&n,&m,&s);
    for(i=1;i<=m;i++){
      fscanf(fin,"%d%d",&x1,&x2);
      v[x1].push_back(x2);
    }
    q[++dr]=s;
    dist[s]=1;
    int x;
    while(st<=dr){
      x=q[st++];
      for(i=0;i<v[x].size();i++){
        if(dist[v[x][i]]==0){
          q[++dr]=v[x][i];
          dist[v[x][i]]=1+dist[x];
        }
      }
    }
    for(i=1;i<=n;i++)
      fprintf(fout,"%d ",dist[i]-1);
    return 0;
}