Cod sursa(job #603186)

Utilizator ion_calimanUAIC Ion Caliman ion_caliman Data 14 iulie 2011 23:52:48
Problema Algoritmul lui Dijkstra Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.6 kb
#include <fstream>
using namespace std;
ifstream f("dijkstra.in");
ofstream g("dijkstra.out");

typedef struct
{
    int x,y,t;
} drum;
drum a[250000];

int n,m,v[50100],i;
bool ok;

int main()
{
    f >> n >> m;
    for (i=0; i<m; i++)
        f >> a[i].x >> a[i].y >> a[i].t;
    fill_n(v,n+1,-1);
    v[1]=0;
    ok=1;
    while (ok)
    {
        ok=0;
        for (i=0; i<m; i++)
            if (v[a[i].x]!=-1 && (v[a[i].y]==-1 || v[a[i].y]>v[a[i].x]+a[i].t))
            {
                v[a[i].y]=v[a[i].x]+a[i].t;
                ok=1;
            }
    }
    for (i=2; i<=n; i++)
        g << v[i] << ' ';
}