Pagini recente » Cod sursa (job #1958888) | Cod sursa (job #349066) | Cod sursa (job #1714100) | Cod sursa (job #2359592) | Cod sursa (job #864238)
Cod sursa(job #864238)
#include <fstream>
#include <cstring>
#include <queue>
#include <vector>
using namespace std;
fstream f("bfs.in",ios::in), g("bfs.out", ios::out);
bool vis[100002];
vector <int> G[100002];
int v[100000];
int main()
{
int n,m,a,b,first;
queue <int> q;
f>>n>>m>>first;
v[first]=0;
for(int i=1 ;i<=m; ++i)
{
f>>a>>b;
G[a].push_back(b);
}
vis[first]=true;
q.push(first);
while (!q.empty())
{
int fr=q.front();
for(int i=0;i<G[fr].size();i++)
{
if(vis[G[fr][i]]==false)
{
q.push(G[fr][i]);
vis[G[fr][i]]=true;
v[G[fr][i]]=v[fr]+1;
}
}
q.pop();
}
for(int i=1;i<=n;i++)
{
if (i!=first && v[i]==0)
g<<"-1"<<" ";
else
g<<v[i]<<" ";
}
return 0;
}