Cod sursa(job #2573439)

Utilizator dumitrustefania1DUMITRU STEFANIA dumitrustefania1 Data 5 martie 2020 17:38:42
Problema Algoritmul lui Dijkstra Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.99 kb
#include <bits/stdc++.h>
#define nmax 50005
#define pb push_back
using namespace std;
ifstream f("dijkstra.in");
ofstream g("dijkstra.out");
int tt,t,i,n,m,r,verifica[nmax],d[nmax],x,y,c,cost1,cost,nod,vec,ok;
vector <pair<int,int> > v[nmax];
priority_queue <pair<int,int> > q;
int main()
{
    f>>n>>m;
    for(i=1;i<=m;i++)
    {
        f>>x>>y>>c;
        v[x].pb({y,c});

    }

      for(i=1;i<=n;i++)
            d[i]=1<<30;

          d[1]=0;
    q.push({0,1});

    while(!q.empty())
    {   cost=-q.top().first;
        nod=q.top().second;

        q.pop();
        if(cost==d[nod])
        for(i=0;i<v[nod].size();i++)
        {
            vec=v[nod][i].first;
            if(d[vec]>v[nod][i].second+d[nod])
            {
                 d[vec]=v[nod][i].second+d[nod];
                 q.push({-d[vec],vec});
            }


        }
    }
    for(i=2;i<=n;i++)
        if(d[i]==1<<30)
        g<<0<<" ";
    else
        g<<d[i]<<" ";
    return 0;
}