Pagini recente » Cod sursa (job #378847) | Cod sursa (job #1964377) | Cod sursa (job #2809994) | Cod sursa (job #892578) | Cod sursa (job #575396)
Cod sursa(job #575396)
using namespace std;
#include<fstream>
#include<vector>
vector <int> v[100100];
short sol[100100],list[100100],lung[100100];
int n,m,s;
void citire()
{int x,y,i;
ifstream in("bfs.in");
in>>n>>m>>s;
for(i=0;i<m;i++)
{in>>x>>y;
v[x].push_back(y);
}
for(i=1;i<=n;i++)
lung[i]=v[i].size();
in.close();
}
int main()
{int i,j,nr;
citire();
for(i=1;i<=n;i++)
sol[i]=-1;
sol[s]=0;
nr=1;
list[1]=s;
for(i=1;i<=nr;i++)
{for(j=0;j<lung[list[i]];j++)
if(sol[v[list[i]][j]]==-1)
{list[++nr]=v[list[i]][j];
sol[list[nr]]=sol[list[i]]+1;
}
}
ofstream out("bfs.out");
for(i=1;i<=n;i++)
out<<sol[i]<<" ";
out<<'\n';
out.close();
return 0;
}