Pagini recente » Cod sursa (job #380612) | Cod sursa (job #2484996) | Cod sursa (job #719328) | Cod sursa (job #2194287) | Cod sursa (job #819854)
Cod sursa(job #819854)
#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);
for(register int i=1; i<=m; ++i)
{scanf("%d%d%d",&x[i],&y[i],&c[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;
}