Cod sursa(job #2345057)

Utilizator Alex221Dumitru Alexandru Alex221 Data 15 februarie 2019 20:42:41
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.69 kb
#include <bits/stdc++.h>
#define inf (1 <<30 )
using namespace std;
ifstream f("bfs.in");
ofstream g("bfs.out");
int n,m,a,x,y,varf,dist[100001];
vector<int> v[100001];
queue <int> q;
int main()
{ f>>n>>m>>a;
  for(int i=1;i<=m;i++)
  { f>>x>>y;
    v[x].push_back(y);
  }
  for(int i=1;i<=n;i++)
    dist[i]=inf;
  dist[a]=0;
  q.push(a);
  while(!q.empty())
  { varf=q.front();
    q.pop();
     for(int i=0;i<v[varf].size();i++)
          if(dist[v[varf][i]]>dist[varf]+1)
          {
         q.push(v[varf][i]);
         dist[v[varf][i]]=dist[varf]+1;
         }
  }
  for(int i=1;i<=n;i++)
    if(dist[i]==inf) g<<-1<<" ";
    else g<<dist[i]<<" ";
    return 0;
}