Pagini recente » Cod sursa (job #1338442) | Cod sursa (job #2667899) | Cod sursa (job #2715788) | Cod sursa (job #3163362) | Cod sursa (job #911350)
Cod sursa(job #911350)
#include<fstream>
#include<queue>
#define In "bfs.in"
#define Out "bfs.out"
#define N 100002
using namespace std;
queue<int>q;
vector<int>v[N];
int viz[N];
int n,nod;
void Citire()
{
int i,m,x,y;
ifstream fin(In);
fin>>n>>m>>nod;
for(i=1;i<=m;i++)
{
fin>>x>>y;
v[x].push_back(y);
}
fin.close();
}
void Bfs()
{
int i,lim,p,x;
q.push(nod);
viz[nod] = 1;
while(!q.empty())
{
p = q.front();
q.pop();
lim = v[p].size();
for(i=0;i<lim;i++)
{
x = v[p][i];
if(viz[x]==0)
{
viz[x] = viz[p]+1;
q.push(x);
}
}
}
}
void Afisare()
{
int i;
ofstream fout(Out);
for(i=1;i<=n;i++)
fout<<viz[i]-1<<" ";
fout<<"\n";
fout.close();
}
int main()
{
Citire();
Bfs();
Afisare();
return 0;
}