Pagini recente » Cod sursa (job #1493754) | Cod sursa (job #472876) | Cod sursa (job #488156) | Cod sursa (job #61688) | Cod sursa (job #2423513)
#include <iostream>
#include <fstream>
#include <vector>
#define inf 1<<24
using namespace std;
ifstream f("dijkstra.in");
ofstream g("dijkstra.out");
int main()
{
int n, m;
f >> n >> m;
vector <vector <pair<int, int>>> Graph(n+1);
vector <int> viz(n+1, 0), d(n+1, inf);
for (int i = 1; i <= m; i++) {
int x, y, cost;
f >> x >> y >> cost;
Graph[x].push_back(make_pair(cost, y));
}
d[1] = 0;
int min, pmin;
for (int i = 1; i <= n; i++) {
int min = inf;
for (int j = 1; j <= n; j++) {
if (d[j] < min && viz[j] == 0) {
min = d[j];
pmin = j;
}
}
viz[pmin] = 1;
for (auto j : Graph[pmin]) {
if (d[pmin] + j.first < d[j.second]) {
d[j.second] = d[pmin] + j.first;
}
}
}
for (int i = 2; i <= n; i++) {
if (d[i] == inf) g << "0" << ' ';
else g << d[i] << ' ';
}
}