Pagini recente » Cod sursa (job #3184798) | Cod sursa (job #3200750) | Cod sursa (job #38757) | Cod sursa (job #74932) | Cod sursa (job #205698)
Cod sursa(job #205698)
//Bellman-Ford O(M*N)
#include<stdio.h>
#define Nmax 250005
#define inf 100000000
int x[Nmax], y[Nmax], d[Nmax];
int dist[50005];
int main(){
FILE *fin = fopen("dijkstra.in","r"),
*fout = fopen("dijkstra.out","w");
int N,M;
fscanf(fin,"%d%d",&N,&M);
for(int i=1;i<=M;i++)
fscanf(fin,"%d%d%d",&x[i],&y[i],&d[i]);
for(int i=1;i<=N;i++)
dist[i]=inf;
dist[1]=0;
for(int i=1;i<=N;i++){
for(int j=1;j<=M;j++)
if(dist[y[i]] > dist[x[i]] + d[i])
dist[y[i]] = dist[x[i]] + d[i];
}
for(int i=2;i<=N;i++)
if(dist[i] < inf)
fprintf(fout,"%d ",dist[i]);
else
fprintf(fout,"0 ");
fclose(fin);
fclose(fout);
return 0;
}