Cod sursa(job #1711088)
| Utilizator | Data | 30 mai 2016 15:28:30 | |
|---|---|---|---|
| Problema | BFS - Parcurgere in latime | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.6 kb |
#include <fstream>
#include <vector>
using namespace std;
ifstream f("bfs.in");
ofstream g("bfs.out");
int n,m,s,c[100001], niv[100001];
vector <int> L[100001];
int main()
{ f>>n>>m>>s;
for(int u,v,i=1;i<=m;i++)
{ f>>u>>v;
L[u].push_back(v);
}
c[1]=s;
niv[s]=1;
int p=1,u=1;
while(p<=u)
{ int t=c[p];
for(unsigned int i=0;i<L[t].size();i++)
if(!niv[L[t][i]]) {c[++u]=L[t][i]; niv[L[t][i]]=niv[t]+1;}
p++;
}
for(int i=1;i<=n;i++)
if(niv[i]) g<<niv[i]-1<<' '; else g<<"-1 ";
g.close(); return 0;
}
