Pagini recente » Cod sursa (job #1228435) | Cod sursa (job #2982918) | Istoria paginii runda/bomba1/clasament | Cod sursa (job #203966) | Cod sursa (job #693884)
Cod sursa(job #693884)
#include<fstream>
#include<vector>
using namespace std;
#define nm 100005
int n, m, s, viz[nm];
vector <int> v[nm];
ifstream f("bfs.in");
ofstream g("bfs.out");
void citire()
{
int x,y;
f>>n>>m>>s;
while(f>>x>>y) v[x].push_back(y);
}
void bfs()
{
int c[nm],p,u,nod,i;
for(i=1;i<=n;i++)
viz[i]=-1;
p=u=1;
c[p]=s;
viz[s]=0;
while(p<=u)
{
nod=c[p];
p++;
for(i=0;i<v[nod].size();i++)
{
if(viz[v[nod][i]]==-1)
{
u++;
c[u]=v[nod][i];
viz[v[nod][i]]=viz[nod]+1;
}
}
}
}
int main()
{
int i;
citire();
bfs();
for(i=1;i<=n;i++)
g<<viz[i]<<' ';
}