Pagini recente » Cod sursa (job #3160279) | Cod sursa (job #1087491) | Cod sursa (job #1412517) | Cod sursa (job #46585) | Cod sursa (job #1706712)
#include <iostream>
#include <queue>
#include <list>
#include <fstream>
using namespace std;
list<int> nod[100005];
int mini[100005]; //vector de minime
queue<int> coada;
int n, m, s,e,x,y;
int main() {
ifstream f("bfs.in");
ofstream g("bfs.out");
f>>n>>m>>s;
for(int i = 1; i <= m; i++) {
f >> x >> y;
nod[x].push_back(y);
}
coada.push(s);
int nod1;
list<int>::iterator it;
mini[s] = 1;
while(!coada.empty()) {
nod1 = coada.front();
coada.pop();
for( it = nod[nod1].begin(); it != nod[nod1].end(); it++ ) {
if(mini[*it] == 0) {
mini[*it] = mini[nod1]+1;
coada.push(*it);
}
}
}
for(int i = 1; i <= n; i++)
g << mini[i]-1 << " ";
return 0;
}