Mai intai trebuie sa te autentifici.
Cod sursa(job #2485644)
| Utilizator | Data | 1 noiembrie 2019 20:46:57 | |
|---|---|---|---|
| Problema | BFS - Parcurgere in latime | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 1.48 kb |
#include <bits/stdc++.h>
#define MOD 1999999973
#define ull unsigned long long
using namespace std;
/*
░▄▀▄▀▀▀▀▄▀▄░░░░░░░░░
░█░░░░░░░░▀▄░░░░░░▄░
█░░▀░░▀░░░░░▀▄▄░░█░█
█░▄░█▀░▄░░░░░░░▀▀░░█
█░░▀▀▀▀░░░░░░░░░░░░█
█░░░░░░░░░░░░░░░░░░█
█░░░░░░░░░░░░░░░░░░█
░█░░▄▄░░▄▄▄▄░░▄▄░░█░
░█░▄▀█░▄▀░░█░▄▀█░▄▀░
░░▀░░░▀░░░░░▀░░░▀░░░
*/
ifstream fin("bfs.in");
ofstream fout("bfs.out");
vector<int> G[100005];
queue<int> bfs;
int viz[100005];
int main()
{
int n,m,S;
int i,x,y,k = 0,vecin;
fin>>n>>m>>S;
for(i = 1; i <= m; i++){
fin>>x>>y;
G[x].push_back(y);
}
bfs.push(S);
while(!bfs.empty()){
for(i = 0; i < G[bfs.front()].size(); i++){
vecin = G[bfs.front()][i];
if(viz[vecin] == 0 && vecin != S){
viz[vecin] = viz[bfs.front()] + 1;
bfs.push(vecin);
}
}
bfs.pop();
}
for(i = 1; i <= n; i++){
if(viz[i] == 0 && i != S){
fout<<"-1 ";
}else{
fout<<viz[i]<<" ";
}
}
return 0;
}
