Cod sursa(job #2448045)

Utilizator BogdanRazvanBogdan Razvan BogdanRazvan Data 15 august 2019 15:35:37
Problema Algoritmul lui Dijkstra Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.92 kb
#include <bits/stdc++.h>
#define INF 2000000000

using namespace std;

ifstream fin ("dijkstra.in");
ofstream fout ("dijkstra.out");

vector < pair < int, int > > a[50005];
int n;

void dijkstra()
{
    vector < bool > visit(n + 1);
    vector < int > d(n + 1, INF);
    d[1] = 0;
    for(int i = 1; i <= n; ++i) {
        int v = -1;
        for(int j = 1; j <= n; ++j) {
            if(!visit[j] && (v == -1 || d[v] > d[j]))
                v = j;
        }
        visit[v] = true;
        for(auto x : a[v]) {
            d[x.first] = min(d[x.first], x.second + d[v]);
        }
    }
    for(int i = 2; i <= n; ++i) fout << d[i] << " ";
}
int main()
{
    ios::sync_with_stdio(false);
    fin.tie(0);
    int m;
    fin >> n >> m;
    for(int i = 1; i <= m; ++i) {
        int x, y, w;
        fin >> x >> y >> w;
        a[x].push_back(make_pair(y, w));
    }
    dijkstra();
    return 0;
}