Pagini recente » Borderou de evaluare (job #365655) | Cod sursa (job #2965393) | Cod sursa (job #2484215) | teammatesoo | Cod sursa (job #1314322)
#include <iostream>
#include <fstream>
using namespace std;
#define inf INT_MAX;
int n,m,mat[10000][10000],t[10000],viz[10000];
void bfs(int a)
{
viz[a]=1;
for(int i=1;i<=n;i++)
if(mat[a][i]==1&&viz[i]==0)
{
t[i]=t[a]+1;
bfs(i);
}
else if(mat[a][i]==0&&viz[i]==0)
t[i]=-1;
}
int main()
{
int i,j,x,y,s;
ifstream in("bfs.in");
ofstream out("bfs.out");
in>>n>>m>>s;
for(i=0;i<m;i++)
{
in>>x>>y;
mat[x][y]=1;
}
in.close();
bfs(s);
for(i=1;i<=n;i++)
out<<t[i]<<" ";
out.close();
return 0;
}