Cod sursa(job #2743519)

Utilizator teofilotopeniTeofil teofilotopeni Data 23 aprilie 2021 10:08:08
Problema Algoritmul lui Dijkstra Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.64 kb
#include <bits/stdc++.h>
#define e pair<int, int>
using namespace std;int read() {int n;scanf("%d", &n);return n;}int main() {freopen("dijkstra.in", "r", stdin);freopen("dijkstra.out", "w", stdout);vector<vector<e>> nodes(read() + 1);for (int m = read(); m; m--) {int a = read();nodes[a].push_back(e(read(), read()));}vector<int> m(nodes.size(), INT_MAX);set<e> c;c.insert(e(0, 1));while (c.size()) {e f = *(c.begin());c.erase(c.begin());if (m[f.second] <= f.first)continue;m[f.second] = f.first;for (e a : nodes[f.second])c.insert(e(a.first + f.first, a.second));}for (int i = 2; i < m.size(); i++)printf("%d ", m[i] == INT_MAX ? 0 : m[i]);return 0;}