Pagini recente » Cod sursa (job #2329217) | Cod sursa (job #1349018) | Cod sursa (job #2545698) | Cod sursa (job #1539020) | Cod sursa (job #1124023)
#include <stdio.h>
#define Inf (1 << 30)
#define mx 50002
#define mg 250001
using namespace std;
int n,m,i,j,a[mx],ok;
struct mch{int x,y,c;};
mch v[mg];
int main()
{
freopen("dijkstra.in","r",stdin);
freopen("dijkstra.out","w",stdout);
scanf("%d %d ",&n,&m);
for (i = 1; i <= m; i++){
scanf("%d %d %d",&v[i].x,&v[i].y,&v[i].c);
if(v[i].x==1)
a[v[i].y]=v[i].c;}
for(i=2;i<=n;i++)
if(a[i]==0)
a[i]=Inf;
do{ ok=1;
for(i=1;i<=m;i++)
if(a[v[i].y]>a[v[i].x]+v[i].c)
{
a[v[i].y]=a[v[i].x]+v[i].c;
ok=0;
}}
while(!ok);
for(i=2;i<=n;i++)
printf("%d ",a[i]);
return 0;
}