Pagini recente » Cod sursa (job #2423564) | Cod sursa (job #2396252) | Cod sursa (job #1838940) | Cod sursa (job #1336992) | Cod sursa (job #1513246)
#include <fstream>
#include <iostream>
using namespace std;
ifstream f("dijkstra.in");
long m,n;
int a[22301][22301];
int distanta[22301];
int viz[22301];
int main(){
int i,x,y,z,nod,k,minim;
f>>n>>m;
for(i=1;i<=n;i++)
for(k=1;k<=n;k++)a[i][k]=-1;
for(long j=1;j<=m;j++){
f>>x>>y>>z;
a[x][y]=z;
}
for(i=2;i<=n;i++){
distanta[i]=32767;
viz[i]=0;
}
distanta[1]=0;
for(k=1;k<n;k++){
minim=32767;
for(int i=1;i<=n;i++)
if((distanta[i]<minim)&&(viz[i]==0)){nod=i; minim=distanta[i];}
viz[nod]=1;
for(i=1;i<=n;i++)if((a[nod][i]>-1)&&(a[nod][i]+distanta[nod]<distanta[i]))distanta[i]=a[nod][i]+distanta[nod];
}
for(i=2;i<=n;i++){cout<<distanta[i]<<" ";}
return 0;
}