Cod sursa(job #1241523)

Utilizator j.loves_rockJessica Joanne Patrascu j.loves_rock Data 13 octombrie 2014 18:31:49
Problema Algoritmul lui Dijkstra Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.86 kb
#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;
}