Pagini recente » Cod sursa (job #1823748) | Cod sursa (job #981317) | Cod sursa (job #3290288) | Cod sursa (job #3190414) | Cod sursa (job #2007125)
#include<fstream>
#include<queue>
#include<iterator>
using namespace std;
struct csucs {
vector<int>szomszedok;
int tavolsag = -1;
};
int main() {
ifstream in("bfs.in");
int N, M, S;
in >> N >> M >> S;
csucs* csucsok = new csucs[N];
for (; M;M--) {
int honnan, hova;
in >> honnan >> hova;
csucsok[honnan - 1].szomszedok.push_back(hova - 1);
}
csucsok[S - 1].tavolsag = 0;
queue<int> q;
q.push(S - 1);
while (!q.empty())
{
S = q.front();
q.pop();
for (vector<int>::iterator it = csucsok[S].szomszedok.begin();
it != csucsok[S].szomszedok.end();++it) {
if (csucsok[*it].tavolsag == -1) {
q.push(*it);
csucsok[*it].tavolsag = csucsok[S].tavolsag + 1;
}
}
}
ofstream out("bfs.out");
for (int i = 0;i < N;++i)
out << csucsok[i].tavolsag << " ";
}