Pagini recente » Cod sursa (job #348642) | Cod sursa (job #195625) | Cod sursa (job #3282133) | Cod sursa (job #1696060) | Cod sursa (job #868782)
Cod sursa(job #868782)
#include<iostream>
#include<fstream>
using namespace std;
ifstream f("dijkstra.in");
ofstream g("dijkstra.out");
unsigned short int n,x,y,a[1501][1501],i,j,v[1501],s[1501];
unsigned short int c;
int m;
void dijkstra(int linie)
{unsigned short int k,minim=1001,d,col,q;
for(k=1;k<=n;k++)
v[k]=a[linie][k];
s[linie]=1;
for(k=2;k<=n;k++)
{minim=1001;
for(q=1;q<=n;q++)
if(s[q]==0)
if(v[q]<minim)
{minim=v[q];
col=q;}
s[col]=1;
for(q=1;q<=n;q++)
if(s[q]==0)
{d=v[col]+a[col][q];
if(d<v[q])
v[q]=d;
}
}
}
int main()
{f>>n>>m;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
if(i!=j)
a[i][j]=1001;
for(i=1;i<=m;i++)
{f>>x>>y>>c;
a[x][y]=c;
}
dijkstra(1);
for(i=2;i<=n;i++)
if(v[i]==1001)
g<<"0";
else g<<v[i]<<" ";
}