Cod sursa(job #2078019)

Utilizator DeleDelegeanu Alexandru Dele Data 28 noiembrie 2017 20:04:59
Problema Algoritmul lui Dijkstra Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.89 kb
#include <fstream>
using namespace std;
ifstream f("dijkstra.in");
ofstream g("dijkstra.out");
int n,i,j,x,mi,poz,a[50001][50001],v[50001],d[50001];
int main()
{
    f>>n;
    for(i=1 ; i<=n ; ++i)
        for(j=1 ; j<=n ; ++j)
    {
        f>>a[i][j];
        //if(a[i][j]==0)
        //    a[i][j]=99999999;
    }
    v[1]=1;
    for (i=1;i<=n;i++)
        d[i]=a[1][i];
    for(i=1 ; i<=n ; ++i)
    {
        mi=9999999;
        poz=0;
        for(j=1 ; j<=n ; ++j)
            if(v[j]==0&&d[j]<mi&&d[j]<1000)
        {
            mi=d[j];
            poz=j;
        }
        if (poz==0) break;
        x=d[poz];
        v[poz]=1;
        for(j=1 ; j<=n ; ++j)
            if(x+a[poz][j]<d[j])
                d[j]=x+a[poz][j];
    }
    for(i=1 ; i<=n ; ++i)
    {
        //for(j=1 ; j<=n ; ++j)
            g<<d[i]<<" ";
        //g<<'\n';
    }
    return 0;
}