Pagini recente » Cod sursa (job #638462) | Cod sursa (job #3240223) | Cod sursa (job #2719030) | Cod sursa (job #825152) | Cod sursa (job #696628)
Cod sursa(job #696628)
#include<cstdio>
#include<vector>
#define INF 1<<30
using namespace std;
int nN, nM;
struct _muchie
{
int x,y,cost;
} muchie[250010];
int dist[50010];
void bford()
{
dist[1]=0;
for (int i=2;i<=nN;i++) dist[i]=INF;
for (int i=1;i<=nN-1;i++)
for (int j=1;j<=nM;j++)
if (dist[muchie[j].x]+muchie[j].cost<dist[muchie[j].y])
dist[muchie[j].y]=dist[muchie[j].x]+muchie[j].cost;
}
int main()
{
FILE *fin = fopen("dijkstra.in", "r");
fscanf (fin, "%d %d", &nN, &nM);
for (int i=1; i<=nM; i++)
fscanf(fin, "%d %d %d", &muchie[i].x, &muchie[i].y, &muchie[i].cost);
bford();
FILE *fout = fopen("dijkstra.out", "w");
for (int i=2; i<=nN; i++)
fprintf(fout,"%d ", dist[i]==INF?0 :dist[i] );
return 0;
}