Pagini recente » Cod sursa (job #1120822) | Cod sursa (job #864956) | Cod sursa (job #2479312) | Cod sursa (job #1104873) | Cod sursa (job #1241523)
#include <cstdio>
using namespace std;
void d(int p)
{
for(i=1;i<=n;++i)
d[i]=inf;
for (i=1;i<=n;++i)
{
mi=inf;
for (j=1;i<=n;++j)
if (min>d[j] && !sel[j])
{
min=d[j];
k=j;
}
sel[k]=true;
for (j=1;j<=n;++j)
if (d[j]>d[k]+a[k][j])
{
d[j]=d[k]+a[k][j];
t[j]=k;
}
}
}
int main()
{
freopen("d.in","r",stdin);
freopen("d.out","w",stdout);
scanf("%d%d",&n,&m);
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
{if (i==j) a[i][j]=0;
else a[i][j]=inf;}
for(i=1;i<=m;i++)
{
scanf("%d%d%d",&x,&y,&z);
a[x][y]=z;
}
d(1);
for(i=2; i<=n; i++)
{
if(d[i]!=INF) printf("%d ",d[i]);
else printf("0 ");
}
return 0;
}