Cod sursa(job #1378554)

Utilizator victor_crivatCrivat Victor victor_crivat Data 6 martie 2015 12:52:16
Problema Algoritmul lui Dijkstra Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.86 kb
#include <fstream>
#define miel 10000
using namespace std;
ifstream f("dijkstra.in");
ofstream g("dijkstra.out");
int i,j,m,n,c[miel][miel],d[miel],t[miel],x,y;
bool used[miel];
void dijkstra (int sursa)
{
    int i,minn,nod;
    d[sursa]=0;
    while (1)
    {minn=miel;
     nod=-1;
     for (i=1;i<=n;i++)
     if (!used[i]&&minn>d[i])

         {minn=d[i];nod=i;}
         if (minn==miel) break;
         used[nod]=true;
         for (i=1;i<=n;i++)
         if (d[i]>d[nod]+c[nod][i])
         {d[i]=d[nod]+c[nod][i];
             t[i]=nod;
         }
    }
}
void afis(int i)
{
    if(t[i]) {afis(t[i]);
    g<<i<<" ";}
}
int main()
{f>>n>>m;
for (i=1;i<=n;i++)
for (j=1;j<=n;j++)
c[i][j]=miel;
for (i=1;i<=m;i++)
{f>>x>>y;
f>>c[x][y];
c[y][x]=c[x][y];
}
for (i=1;i<=n;i++) d[i]=miel;
dijkstra(1);
for (i=2;i<=n;i++) g<<d[i]<<" ";
}