Cod sursa(job #1387501)

Utilizator BlackMWStefan Laurentiu BlackMW Data 14 martie 2015 12:18:48
Problema Algoritmul lui Dijkstra Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include <fstream>
using namespace std;
ifstream f("DIJKSTRA.IN");
ofstream g("DIJKSTRA.OUT");
int n,m,i,j,k,x,y,z,c[101][101],viz[101],d[101];
void init()
{for(i=1;i<=n;i++)d[i]=c[1][i];
 viz[1]=1;
}
int minim()
{int MIN=10000,k=1;
 for(i=1;i<=n;i++)
 if(d[i]<MIN&&viz[i]==0){MIN=d[i];k=i;}
 return k;
}
int main()
{
   f>>n>>m;
   for(i=1;i<=m;i++)
   {f>>x>>y>>z;
    c[x][y]=z;
   }
   for(i=1;i<=n;i++)
        for(j=1;j<=n;j++)
            if(c[i][j]==0)c[i][j]=10000;
        init();
        for(int pas=1;pas<n;pas++)
        {k=minim();
         viz[k]=1;
         for(i=1;i<=n;i++)
            if(d[i]>d[k]+c[k][i])d[i]=d[k]+c[k][i];
        }
    for(i=2;i<=n;i++)g<<d[i]<<" ";
    return 0;
}