Pagini recente » Cod sursa (job #2462283) | Cod sursa (job #2805637) | Cod sursa (job #2785402) | Cod sursa (job #2430051) | Cod sursa (job #812632)
Cod sursa(job #812632)
#include<cstdio>
#include<vector>
#define INF 0x3f3f3f3f
using namespace std;
int n,m,ok;
int main()
{ freopen("dijkstra.in","rt",stdin);
freopen("dijkstra.out","wt",stdout);
scanf("%d%d",&n,&m);
vector<int> x(n+1,0),y(n+1,0),c(n+1,0);
vector<int> d(n+1,INF); scanf("%d%d%d",&x[1],&y[1],&c[1]);
for(register int i=2; i<=m; scanf("%d%d%d",&x[i],&y[i],&c[i]),++i)
if(x[i]==1) d[y[i]]=c[i];
do { ok=0;
for(register int i=1; i<=m; ++i)
if(d[y[i]]>d[x[i]]+c[i]) d[y[i]]=d[x[i]]+c[i], ok=1;
}
while (ok);
for(register int i=2; i<=n; ++i)
if(d[i]!=INF) printf("%d ",d[i]); else printf("0 ");
printf("\n");
return 0;
}