Pagini recente » Cod sursa (job #316475) | Cod sursa (job #2256876) | Cod sursa (job #759750) | Cod sursa (job #696618)
Cod sursa(job #696618)
#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++)
{
_muchie tmp;
fscanf(fin, "%d %d %d", &tmp.x, &tmp.y, &tmp.cost);
}
bford();
FILE *fout = fopen("dijkstra.in", "w");
for (int i=2; i<=nN; i++)
fprintf(fout,"%d ", dist[i]==INF?0 :dist[i] );
return 0;
}