Pagini recente » Cod sursa (job #2300810) | Cod sursa (job #1124929) | Cod sursa (job #1124991) | Cod sursa (job #2532296) | Cod sursa (job #562533)
Cod sursa(job #562533)
#include<iostream>
#include<stdio.h>
#include<fstream>
#include<queue>
#include<vector>
using namespace std;
int n,m,s,viz[10000],cost[10000];
int p,u;
queue <int> c;
vector <int> a[1000];
int parcurg(int i)
{
viz[i]=1;
int j,v;
u=1;
c.push(i);
while(c.size())
{
p=c.front();
for(j=0;j<a[p].size();j++)
{ v=a[p][j];
if(viz[v]==0)
{
viz[v]=1;
c.push(v);
// cost[j]=cost[j]+1;;
//if(a[s][j]==0)
cost[v]=cost[p]+1;
}
}
//ActualizareCoada();
c.pop();
}
}
int main()
{
ifstream f("bfs.in");
f>>n>>m>>s;
int i,j,k;
for(i=1;i<=m;i++)
{
f>>j>>k;
a[j].push_back(k);
}
parcurg(s);
ofstream g("bfs.out");
for(i=1;i<=n;i++)
{if((cost[i]==0)&&(i!=s))
cost[i]=-1;
g<<cost[i]<<" ";
}
return 0;
}