Pagini recente » Cod sursa (job #2962298) | Cod sursa (job #83548) | Cod sursa (job #282000) | Cod sursa (job #3206039) | Cod sursa (job #984238)
Cod sursa(job #984238)
#include <fstream>
#include <vector>
using namespace std;
fstream fin("grader_test7.in", ios::in);
fstream fout("bfs.out", ios::out);
long long N,M,S;
vector <int> A[100010];
bool viz[100010];
long dist[100010];
long c[100010],p,u;
void BFS()
{
long t,z;
while(p<=u)
{
t=c[p];
p++;
viz[t]=1;
while(A[t].size() > 0 )
{
z=A[t].size();
if(viz[A[t][z-1]] == 0) { c[++u]=A[t][z-1]; dist[c[u]] = dist[t] + 1;}
viz[c[u]] = 1;
A[t].pop_back();
}
}
}
int main()
{
fin>>N>>M>>S;
long long i,x,y;
for(i=1; i<=M; i++)
{
fin>>x>>y;
A[x].push_back(y);
}
for(i=1; i<=M; i++)
{
dist[i]=-1;
}
dist[S]=0;
p=1; u=1; c[u]=S;
BFS();
for(i=1; i<=N; i++)
{
fout<<dist[i]<<' ';
}
fin.close(); fout.close();
return 0;
}