Cod sursa(job #2499528)

Utilizator Razvan25Leanca Razvan Razvan25 Data 26 noiembrie 2019 11:57:02
Problema Algoritmul lui Dijkstra Scor 90
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.85 kb
#include <fstream>
#define inf 100000000

using namespace std;

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

struct muchii{
    long x, y, c;
}G[250005];

int N, M, i, x ,y, c, D[250005], ok;

int main()
{
    fin >> N >> M;
    for (i = 1; i <= M; i ++){
        fin >> x >> y >> c;
        G[i].x = x; G[i].y = y; G[i].c = c;
        if (x == 1)
            D[y] = c;
    }
    for (i = 2; i <= N; i ++)
        if (D[i] == 0)
            D[i] = inf;
    while (ok == 0){
        ok = 1;
        for (i = 1; i <= M; i ++)
            if (D[G[i].y] > D[G[i].x] + G[i].c){
                D[G[i].y] = D[G[i].x] + G[i].c;
                ok = 0;
            }
    }
    for (i = 2; i <= N; i ++){
        if (D[i] != inf)
            fout << D[i] << " ";
        else
            fout << "0 ";
    }
    return 0;
}