Pagini recente » Cod sursa (job #496216) | Cod sursa (job #1910694) | Cod sursa (job #1345687) | Cod sursa (job #1904781) | Cod sursa (job #1129665)
#include <fstream>
#include <vector>
#include <queue>
#define numaru 100001
using namespace std;
vector<int> G[numaru];
int nrarce[numaru];
bool vizitat[numaru];
int main()
{
ifstream f("bfs.in");
ofstream g("bfs.out");
int n,m,s,i,j;
f>>n>>m>>s;
for(;m;--m)
{
f>>i>>j;
G[i].push_back(j);
}
queue<int> c;
c.push(s);
while(!c.empty())
{
i=c.front();
vizitat[i]=true;
for(j=0;j<G[i].size();++j)
if(!vizitat[G[i][j]]){ c.push(G[i][j]); nrarce[G[i][j]]=nrarce[i]+1; vizitat[G[i][j]]=true;}
c.pop();
}
for(i=1;i<=n;++i)
g<<((vizitat[i])?nrarce[i]:-1)<<" ";
f.close();
g.close();
return 0;
}