Pagini recente » Cod sursa (job #428390) | Cod sursa (job #710562) | Cod sursa (job #2621378) | Cod sursa (job #2515534) | Cod sursa (job #1303830)
#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!