Pagini recente » Cod sursa (job #1842170) | Cod sursa (job #1736518) | Cod sursa (job #2503469) | Cod sursa (job #2584218) | Cod sursa (job #812633)
Cod sursa(job #812633)
#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(m+6,0),y(m+6,0),c(m+6,0);
vector<int> d(n+6,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;
}