Pagini recente » Cod sursa (job #1447352) | Diferente pentru problema/expected3 intre reviziile 11 si 10 | Diferente pentru happy-coding-2007/clasament intre reviziile 7 si 2 | Cod sursa (job #1388349) | Cod sursa (job #1473617)
#include <vector>
#include <fstream>
using namespace std;
int n,m,s,sol[100003];
vector<int> a[100003];
inline void Citire()
{
int i,x,y;
ifstream fin("bfs.in");
fin>>n>>m>>s;
for(i=1;i<=m;++i)
{
fin>>x>>y;
if(x!=y)
a[x].push_back(y);
}
fin.close();
}
inline void Afisare()
{
int i;
ofstream fout("bfs.out");
for(i=1;i<=n;++i)
fout<<sol[i]<<" ";
fout<<"\n";
fout.close();
}
inline void BFS(int x)
{
int j;
for(j=0;j<a[x].size();++j)
if(sol[a[x][j]]==-1 || sol[a[x][j]]>sol[x]+1)
{
sol[a[x][j]]=sol[x]+1;
BFS(a[x][j]);
}
}
int main()
{
int i;
Citire();
for(i=1;i<=n;++i)
sol[i]=-1;
sol[s]=0;
BFS(s);
Afisare();
return 0;
}