Cod sursa(job #1805501)

Utilizator ana-maria.simiAna-Maria Simionescu ana-maria.simi Data 13 noiembrie 2016 21:59:51
Problema Algoritmul lui Dijkstra Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 0.79 kb
#include <fstream>
#define INF 100000
using namespace std;
ifstream f("dijkstra.in");
ofstream g("dijkstra.out");
long long n,p,X,Y,C,m,D[50001],i,ok;
struct graf{int x,y,c;} G[250001];
int main()
 {
    f>>n>>m;
    for(i=1; i<=m; i++)
        {f>>X>>Y>>C;
        G[i].x=X;
        G[i].y=Y;
        G[i].c=C;
        if(1==X)
            D[Y]=C;
        if(i>=2 && i<=n)
            D[i]=INF;}
    ok=i;
    for(i=ok; i<=n; i++)
        D[i]=INF;
    ok=0;
    do{
        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;}
    }while(ok==0);
    for(i=2; i<=n; i++)
        if(D[i]!=INF)
            g<<D[i]<<" ";
            else
                g<<0<<" ";

    return 0;
 }