Pagini recente » Cod sursa (job #232699) | Cod sursa (job #2020716) | Cod sursa (job #437153) | Cod sursa (job #349444) | Cod sursa (job #2338351)
#include <iostream>
#include <fstream>
using namespace std;
int a[101][101],m,n;
int v[101];
int viz[101];
int pinf=999999;
void citire()
{
ifstream f ("djikstra.in");
int x,y,c;
f>>n>>m;
for(int i=1; i<=n; i++)
for(int j=1; j<=n; j++)
a[i][j]=a[j][i]=pinf;
for(int i=1; i<=m; i++)
f>>x>>y>>c,a[x][y]=a[y][x]=c;
}
void dj(int nod)
{
for(int i=1; i<=n; i++)
v[i]=pinf;
v[nod]=0;
int nodc=nod;
for(int j=1; j<=n; j++)
{
int minn=pinf;
viz[nodc]=1;
for(int i=1; i<=n; i++)
if(v[i]>v[nodc]+a[i][nodc]&&viz[i]==0)
v[i]=v[nodc]+a[i][nodc];
for(int i=1; i<=n; i++)
if(minn>v[i]&&viz[i]==0)
{
nodc=i;
minn=v[i];
}
for(int i=1; i<=n; i++)
cerr<<v[i]<<" ";
cerr<<endl;
}
}
int main()
{
citire();
dj(1);
ofstream g ("djikstra.out");
for(int i=2;i<=n;i++)
g<<v[i]<<" ";
return 0;
}