Cod sursa(job #1794635)

Utilizator filip.mihalutMihalut Filip filip.mihalut Data 1 noiembrie 2016 16:08:22
Problema Algoritmul lui Dijkstra Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 0.83 kb
#include <fstream>
#include <cstring>

using namespace std;

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

int mare = 0x3f3f3f3f;
int n, m, i, j;
int vec[50005];
bool ok;
struct filip
{
    int x, y, cost;
} v[250005];

int main()
{
    f >> n >> m;
    memset(vec,mare,sizeof vec);
    for (i = 1; i <= m; i++)
    {
        f >> v[i].x >> v[i].y >> v[i].cost;
        if (v[i].x == 1)
            vec[v[i].y] = v[i].cost;
    }
    vec[1] = 0;
    ok = 0;
    while (!ok)
    {
        ok = 1;
        for (i = 1; i <= m; i++)
            if (vec[v[i].x] + v[i].cost < vec[v[i].y])
                vec[v[i].y] = vec[v[i].x] + v[i].cost, ok = 0;
    }
    for (i = 2; i <= n; i++)
        if (vec[i] != mare)
            g << vec[i] << " ";
        else
            g << "0 ";
    return 0;
}