Cod sursa(job #2474223)

Utilizator iminbluePana Adrian iminblue Data 14 octombrie 2019 21:20:58
Problema Algoritmul lui Dijkstra Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.86 kb
#include <iostream>
#include <fstream>
#define inf 1000000
using namespace std;

ifstream f("dijkstra.in");
ofstream g("dijkstra.out");

int n,i,j,m,x,y,l,nod;
int d[50001],cost[5001][5001],viz[50001];

int main()
{
    f>>n>>m;
    for (i=1;i<=m;i++)
    {
        f>>x>>y;
        f>>cost[x][y];
        if (x==1) d[y]=cost[x][y];
    }



    d[1]=0;
    for (i=2;i<=n;i++)
       if (d[i]==0) d[i]=inf;

    for (i=1;i<n;i++)
    {
        int Min=inf;
        for (j=2;j<=n;j++)
        {
            if (viz[j]==0 && d[j]<Min)
            {
                nod=j;
                Min=d[j];
            }
        }
                viz[nod]=1;

        for (j=2;j<=n;j++)
            if (d[j]>d[nod]+cost[nod][j] && cost[nod][j]!=0) d[j]=d[nod]+cost[nod][j];

    }

    for (i=1;i<n;i++)
        g<<d[i+1]<<" ";

    return 0;
}