Cod sursa(job #1628595)

Utilizator alexander34roArdelean Alexandru Andrei alexander34ro Data 4 martie 2016 09:23:56
Problema Algoritmul lui Dijkstra Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.69 kb
#include <fstream>
#define oo 1000001
using namespace std;

ifstream f("dijkstra.in");
ofstream g("dijkstra.out");

struct nod{
    long x = 0, y = 0, d = oo;
};

nod G[250002];
long D[50002];
long N, M;

int main()
{
    f >> N >> M;
    for(long i = 1; i <= M; i++) f >> G[i].x >> G[i].y >> G[i].d;

    for(long i = 1; i <= N; i++) D[i] = oo;
    D[1] = 0;

    long ok = 0;
    while(!ok){

        ok = 1;
        for(long i = 1; i <= M; i++)
            if(D[G[i].y] > D[G[i].x] + G[i].d)
                D[G[i].y] = D[G[i].x] + G[i].d, ok = 0;
    }

    for(long i = 2; i <= N; i++)
        if(D[i] != oo) g << D[i] << ' ';
        else g << "0 ";

    return 0;
}