Cod sursa(job #1513246)

Utilizator eden001Muntean Natan eden001 Data 29 octombrie 2015 10:23:41
Problema Algoritmul lui Dijkstra Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.81 kb
#include <fstream>
#include <iostream>
using namespace std;
ifstream f("dijkstra.in");
long m,n;
int a[22301][22301];
int distanta[22301];
int viz[22301];
int main(){
    int i,x,y,z,nod,k,minim;
    f>>n>>m;
    for(i=1;i<=n;i++)
        for(k=1;k<=n;k++)a[i][k]=-1;
    for(long j=1;j<=m;j++){
        f>>x>>y>>z;
        a[x][y]=z;
    }
    for(i=2;i<=n;i++){
        distanta[i]=32767;
        viz[i]=0;
    }
    distanta[1]=0;
    for(k=1;k<n;k++){
        minim=32767;
        for(int i=1;i<=n;i++)
            if((distanta[i]<minim)&&(viz[i]==0)){nod=i; minim=distanta[i];}
        viz[nod]=1;
        for(i=1;i<=n;i++)if((a[nod][i]>-1)&&(a[nod][i]+distanta[nod]<distanta[i]))distanta[i]=a[nod][i]+distanta[nod];

    }
    for(i=2;i<=n;i++){cout<<distanta[i]<<" ";}
    return 0;
}