Cod sursa(job #2159210)

Utilizator unknownpersonBidasca Carina Georgiana unknownperson Data 10 martie 2018 20:05:01
Problema Algoritmul lui Dijkstra Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include <bits/stdc++.h>


using namespace std;
ifstream f("dijkstra.in");
ofstream g("dijkstra.out");
const int N = 5000;
const int oo = 200000;
int n,m,p,x,y,z,i,j,viz[N],d[N],c[N][N];
int main()
{
    f>>n>>p;
    for(i=1; i<=n; i++)
        for(j=1; j<=n; j++)
            c[i][j]=oo;
    while(f>>x>>y>>z)
        c[x][y]=min(c[x][y],z);
    fill(d,d+n+1,oo);
    d[p]=0;
    while(1)
    {
        j=0;
        for(i=1; i<=n; i++)
            if(!viz[i]&&d[i]<d[j])
                j=i;
        if(j==0)
            break;
        viz[j]=1;
        for(i=1;i<=n;i++)
            d[i]=min(d[i],d[j]+c[j][i]);
    }
    for(i=1; i<=n; i++)
    {
        if(d[i]==oo)d[i]=-1;
        g<<d[i]<<' ';
    }

    return 0;
}