Cod sursa(job #967136)

Utilizator costin7856Antonesi Florean Costin costin7856 Data 27 iunie 2013 10:52:55
Problema Algoritmul lui Dijkstra Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.86 kb
#include<fstream>
using namespace std;
#define dim 50002
#define inf 1000000000
struct muchie
{
    long x,y,c;
};
muchie a[dim];
long d[dim],n,m;
int main()
{
    long i,x,y,c,ok;
    ifstream f("dijkstra.in");
    ofstream g("dijkstra.out");
    f>>n>>m;
    for(i=1;i<=m;i++)
    {
        f>>x>>y>>c;
        a[i].x=x;
        a[i].y=y;
        a[i].c=c;
        if(x==1)
        d[y]=c;
    }
    for(i=2;i<=n;i++)
        if(d[i]==0)
            d[i]=inf;
       do
        {
            ok=1;
            for(i=1;i<=m;i++)
                if(d[a[i].y]>d[a[i].x]+a[i].c)
                {
                    d[a[i].y]=d[a[i].x]+a[i].c;
                    ok=0;
                }
        }while(!ok);

        for(i=2;i<=n;i++)
            if(d[i]!=inf)
                g<<d[i]<<" ";
            else
               g<<0;
}