Pagini recente » Cod sursa (job #2627468) | Cod sursa (job #1048418) | Cod sursa (job #2742390) | Cod sursa (job #534413) | Cod sursa (job #2271691)
#include <iostream>
#include <fstream>
#include <bits/stdc++.h>
using namespace std;
ifstream f("bfs.in");
ofstream g("bfs.out");
vector<vector<int>> m;
int cd[100003];
int dist[100003];
int n,mm,s,i;
void citire()
{
f>>n>>mm>>s;
m.resize(n+1);
for(i=1;i<=mm;i++)
{
int x,y;
f>>x>>y;
m[x].push_back(y);
}
for(i=1;i<=n;i++)
dist[i]=-1;
}
int main()
{
citire();
int in=0,sf=1,lg,nod;
cd[1]=s;dist[s]=0;
while(in<sf)
{
in++;
nod=cd[in];
lg=dist[nod];
for(i=0;i<m[nod].size();i++)
{
int nodurm=m[nod][i];
if(dist[nodurm]==-1)
{
sf++;
cd[sf]=nodurm;
dist[nodurm]=lg+1;
}
}
}
for(i=1;i<=n;i++)
g<<dist[i]<<" ";
}