Pagini recente » Cod sursa (job #1832704) | Cod sursa (job #2558996) | Autentificare | Cod sursa (job #2326057) | Cod sursa (job #2031976)
#include <fstream>
#include <vector>
#include <queue>
#include <cstring>
#include <climits>
#define var auto
int main()
{
std::ifstream in("bfs.in");
int n, m, s;
in >> n >> m >> s;
var graph = new std::vector<int>[n];
for (var i = 0; i < m; ++i)
{
int src, tgt;
in >> src >> tgt;
graph[i].push_back(tgt);
}
var dst = new int[n];
std::memset(dst, INT_MAX, sizeof dst);
dst[s] = 0;
std::queue<int> que;
que.push(s);
while (!que.empty())
{
var crr = que.front();
que.pop();
var newdst = dst[crr] + 1;
for (var adj : graph[crr])
if (dst[adj] > newdst)
{
dst[adj] = newdst;
que.push(adj);
}
}
std::ofstream out("bfs.out");
for (var dist : dst)
out << dist << ' ';
}