Cod sursa(job #1371616)

Utilizator sam09Muntean Sam sam09 Data 3 martie 2015 22:55:34
Problema Algoritmul lui Dijkstra Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.77 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("dijkstra.in");
ofstream g("dijkstra.out");
#define cout g
int nr,n,m,a[5001][5001],res[50000],lista[100000];
int viz[50001],i;
void BFS(int X)
{
    viz[X]=1;
    nr=1;
    int NOD,j,i;
    lista[nr]=X;
    for(j=1;j<=nr;++j)
    {
        NOD=lista[j];

        for(i=1;i<=n;++i)
        if(viz[i]==0)
        if(a[NOD][i]!=0)
        {
            nr++;
            viz[i]=1;
            lista[nr]=i;
            res[i]=res[NOD]+a[NOD][i];
        }

    }
}
int main()
{
    f>>n>>m;
    for(i=1;i<=m;++i)
    {
        int x,y,z;
        f>>x>>y>>z;
        a[x][y]=z;
    }

    BFS(1);
    for(i=2;i<=n;++i)
    {
    cout<<res[i]<<" ";
    }
    return 0;
}