Pagini recente » Cod sursa (job #202553) | Cod sursa (job #1531076) | Cod sursa (job #1740718) | Cod sursa (job #108528) | Cod sursa (job #1068056)
#include <fstream>
#include <vector>
using namespace std;
vector<int> l[100005];
int a[100005], n, m, i, start, c[100005], x, y;
void bfs(int nod)
{
int p=1,u=1;
c[1]=nod;
a[nod]=1;
while(p<=u)
{
for(i=0;i<l[c[p]].size();i++)
{
if(a[l[c[p]][i]]==0)
{
a[l[c[p]][i]]=a[c[p]]+1;
u++;
c[u]=l[c[p]][i];
}
}
p++;
}
}
int main()
{
ifstream f("bfs.in");
ofstream g("bfs.out");
f>>n>>m>>start;
for(i=1;i<=m;i++)
{
f>>x>>y;
l[x].push_back(y);
}
bfs(start);
for(i=1;i<=n;i++)
{
g<<a[i]-1<<" ";
}
g<<"\n";
f.close();g.close();
return 0;
}