Cod sursa(job #1614318)

Utilizator pitradaPit-Rada Ionel-Vasile pitrada Data 25 februarie 2016 21:38:53
Problema Algoritmul lui Dijkstra Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 0.93 kb
#include<fstream>
using namespace std;
ifstream  fin("dijkstra.in");
ofstream fout("dijkstra.out");
struct nod2
{
    int vecin,cost;
    nod2 *leg;
};

nod2 *LV[50002], *p;
int N,M,d[50002], coada[50001], pr, ul, nrcoada, i, x, y, c;
char viz[50002];
int main()
{
    fin>>N>>M;
    for(i=1;i<=M;i++)
    {
        fin>>x>>y>>c;
        p=new nod2;
        p->vecin=y;
        p->cost=c;
        p->leg=LV[x];
        LV[x]=p;
    }
    for(i=1;i<=N;i++)
    {
        d[i]=1000000000;
        viz[i]=0;
    }
    d[1]=0;
    for(i=1;i<=N;i++)
    {
        for(p=LV[i];p;p=p->leg)
        {
            if(d[i]+p->cost<d[p->vecin])
            {
                d[p->vecin]=d[i]+p->cost;
            }
        }
    }
    for(i=2;i<=N;i++)
    {
        if(d[i]==1000000000)
        {
            d[i]=0;
        }
        fout<<d[i]<<" ";
    }
    fout.close();
    fin.close();
    return 0;
}