Cod sursa(job #1303830)

Utilizator radu_uniculeu sunt radu radu_unicul Data 28 decembrie 2014 14:23:11
Problema Algoritmul lui Dijkstra Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.01 kb
#include<iostream>
#include<fstream>
#include<limits.h>
using namespace std;
fstream fin("Dijkstra.in"),fout("Dijkstra.out");
int md(int d[], bool included[])
{
    int minim = INT_MAX, min_index;

    for (int i=0; i<v; i++)
        if (included[i]==false&& d[i]<= minim)
            minim =d[i],min_index =i;

    return min_index;
}
int di(int graph[v][v],int src)
{
    int d[v],u;
    bool included[v];
    for(int i=0; i<v; i++)
    {
        d[i]=INT_MAX;
        included[i]=0;
    }
    d[src]=0;
    for(int i=0; i<v-1; i++)
    {
        u=md(d,included);
        included[u]=1;
        for(int l=0; l<v; l++)
        {
            if (included[l]==0&&graph[u][l]&&d[u]<INT_MAX&&d[u]+graph[u][l]<d[l])
                d[l]=d[u]+graph[u][l];
        }
    }
    for(int q=0; q<v; q++) fout<<d[q]<<" ";
}
int main()
{
    int graph[v][v];
    for(int i=0; i<v; i++)
        for(int j=0; j<v; j++) fin>>graph[i][j];
    di(graph,0);
}
//It's working, and i know why! This is a miracle!