Cod sursa(job #1051942)

Utilizator span7aRazvan span7a Data 10 decembrie 2013 19:07:19
Problema Algoritmul lui Dijkstra Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.97 kb
#include<fstream>
#define M 2000000000
using namespace std;
ifstream f("Dijkstra.in");
ofstream g("Dijkstra.out");
int a[20000][20000],cost[50001],n,viz[50001],t[50001],valmin;
void umple()
{   int i,j;
    for(i=1;i<=n;i++)
        for(j=1;j<=n;j++)
            a[i][j]=M;
}
int main()
{   int m,i,l,j,x,y,z,k;
    f>>n>>m;
    umple();
    for(i=1;i<=m;i++)
        {f>>x>>y>>z;
            a[x][y]=z;
        }
        viz[1]=1;

    for(i=1;i<=n;i++)
        {cost[i]=a[1][i];
        if(cost[i]<M)t[j]=1;}
    for(l=1;l<=n-1;l++)
    {
        valmin=M;
        for(j=1;j<=n;j++)
            if(cost[j]<valmin&&!viz[j]){valmin=cost[j];k=j;}
        viz[k]=1;
        for(i=1;i<=n;i++)
            if(!viz[i])
            {
                if(cost[i]>cost[k]+a[k][i])
                {
                    cost[i]=cost[k]+a[k][i];t[i]=k;
                }
            }
    }
    for(i=2;i<=n;i++)
        g<<cost[i]<<" ";
    return 0;

}