Mai intai trebuie sa te autentifici.
Cod sursa(job #2425247)
Utilizator | Data | 24 mai 2019 17:25:02 | |
---|---|---|---|
Problema | BFS - Parcurgere in latime | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.81 kb |
#include <iostream>
#include <fstream>
#include <queue>
using namespace std;
const int N = 100001;
vector <int> G [N];
vector <int> vec (N, -1);
void bfs ( int start ){
queue <int> q;
int x;
vec[start] = 0;
q.push(start);
while ( !q.empty() ){
x = q.front();
q.pop();
for ( auto i : G[x] )
if ( vec[i] == -1 ){
vec[i] = vec[x] + 1;
q.push( i );
}
}
}
int main(){
int n, m, i, start, x, y;
//ifstream in ("date.in");
ifstream in ("bfs.in");
in >> n >> m >> start;
for ( i = 0; i < m; i++ ){
in >> x >> y;
G[x].push_back(y);
}
in.close();
bfs ( start );
//ofstream out("date.out");
ofstream out ("bfs.out");
for ( i = 1; i <= n; i++ )
out << vec[i] << " ";
out.close();
return 0;
}