Cod sursa(job #2224753)

Utilizator SpatialARTNuna David SpatialART Data 24 iulie 2018 22:48:55
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <queue>
#define NMax 100001
using namespace std;

ifstream f("bfs.in");
ofstream g("bfs.out");
int N,M,S,i,x,y,a[NMax];
bool vizitat[NMax];
queue<int>q;
vector<int>v[NMax];
void bfs(int Nod)
{
vizitat[Nod]=true;
while(!q.empty())
{
Nod=q.front();
q.pop();
for(unsigned j=0;j<v[Nod].size();j++)
if(vizitat[v[Nod][j]]!=true)
{
vizitat[v[Nod][j]]=true;
a[v[Nod][j]]=a[Nod]+1;
q.push(v[Nod][j]);
}
}
}
int main()
{
f>>N>>M>>S;
for(i=1;i<=M;i++)
{
f>>x>>y;
v[x].push_back(y);
}
q.push(S);
bfs(S);
for(i=1;i<=N;i++)
if(a[i]==0 and i!=S)
a[i]=-1;
for(i=1;i<=N;i++)
g<<a[i]<<" ";
}