Cod sursa(job #1649909)

Utilizator bogdan.siritanuSiritanu Bogdan Eusebiu bogdan.siritanu Data 11 martie 2016 15:42:15
Problema Algoritmul lui Dijkstra Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.65 kb
#include<fstream>
#include<climits>
using namespace std;
ifstream f("dijkstra.in");
ofstream g("dijkstra.out");
struct muchie {int x,y,c;} V[250005];
int d[50005],n,m,ok;
int main()
{   f>>n>>m;
    for(int i=2; i<=n; ++i) d[i]=INT_MAX;
    for(int i=1; i<=m; ++i)
    {   f>>V[i].x>>V[i].y>>V[i].c;
        if(V[i].x==1) d[V[i].y]=V[i].c;
    }
    do  {
            ok=1;
            for(int i=1; i<=m; ++i)
            if(d[V[i].y]>d[V[i].x]+V[i].c) {d[V[i].y]=d[V[i].x]+V[i].c; ok=0;}
        }while(!ok);
    for(int i=2; i<=n; ++i)
        if(d[i]!=INT_MAX) g<<d[i]<<' '; else g<<"0 ";
    f.close();
    g.close();
    return 0;
}