Pagini recente » Borderou de evaluare (job #3332187) | Cod sursa (job #1258598) | Cod sursa (job #1959804) | Cod sursa (job #1710874) | Cod sursa (job #2029996)
#include<fstream>
#include<vector>
using namespace std;
ifstream f("bfs.in");
ofstream g("bfs.out");
vector<int> l[1000005];
int viz[100005], n, m, k, p, u, c[100005];
void bfs(int nod)
{
viz[nod]=1;
p=u=1;
c[1]=nod;
while(p<=u)
{
int nc=c[p];
for(int i=0;i<l[nc].size();i++)
{
if(viz[l[nc][i]]==0)
{
viz[l[nc][i]]=viz[nc]+1;
c[++u]=l[nc][i];
}
}
p++;
}
}
int main()
{
f>>n>>m>>k;
for(int i=1;i<=m;i++)
{
int x, y;
f>>x>>y;
l[x].push_back(y);
}
bfs(k);
for(int i=1;i<=n;i++)
g<<viz[i]-1<<" ";
return 0;
}