Cod sursa(job #2004244)

Utilizator mjmilan11Mujdar Milan mjmilan11 Data 25 iulie 2017 13:05:14
Problema Algoritmul lui Dijkstra Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 kb
#include <fstream>
#include <iostream>

using namespace std;

ifstream fin("dijkstra.in");
ofstream fout("dijkstra.out");
int i,m,n,a[250001],b[250001],cost[250001],d[50001],ok,Max;
int main()
{
    fin >> n >> m;
    Max=(1<<30);
    for(i=1;i<=n;i++)
        d[i]=Max;
    for(i=1;i<=m;i++){
        fin >> a[i] >> b[i] >> cost[i];
        if(a[i]==1)
            d[b[i]]=cost[i];
        }
    ok=0;
    while(ok==0){
        ok=1;
            for(i=1;i<=m;i++){
                if(d[b[i]]>d[a[i]]+cost[i]){
                    d[b[i]]=d[a[i]]+cost[i];
                ok=0;
                }
            }
    }
    for(i=2;i<=n;i++)
        if(d[i]==Max)
        fout << 0 << ' ';
    else
        fout << d[i] << ' ';
    return 0;
}