Pagini recente » Cod sursa (job #1239548) | Cod sursa (job #2697448) | Cod sursa (job #2897059) | Cod sursa (job #2134199) | Cod sursa (job #703586)
Cod sursa(job #703586)
#include <cstdio>
struct camp
{
int a,b,c;
} G[250001];
int cost[50001];
int i,ok,n,m;
main()
{
FILE * in = fopen("dijkstra.in","r");
FILE * out = fopen("dijkstra.out","w");
fscanf(in, "%d%d", &n, &m);
for(i=1;i<=m;i++)
{
fscanf(in, "%d%d%d", &G[i].a, &G[i].b, &G[i].c);
if(G[i].a==1)
cost[G[i].b]=G[i].c;
}
for(i=2;i<=n;i++)
{
if(cost[i]==0)
cost[i]=1<<30;
}
while(!ok)
{
ok=1;
for(i=1;i<=m;i++)
if(cost[G[i].b]> cost[G[i].a]+G[i].c)
cost[G[i].b]=cost[G[i].a]+G[i].c, ok=0;
}
for(i=2;i<=n;i++)
{
if(cost[i]!=1<<30)
fprintf(out,"%d ",cost[i]);
else
fprintf(out,"0 ");
}
}