Cod sursa(job #2202371)

Utilizator TheGeneralArion Dan TheGeneral Data 8 mai 2018 16:51:44
Problema Algoritmul lui Dijkstra Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.95 kb
#include <bits/stdc++.h>
#define D 50001
using namespace std;
ifstream fin("dijkstra.in");
ofstream fout("dijkstra.out");
priority_queue < pair <int,int> > pq;
vector <pair <int,int > > v[D];
int dist[D];
int x,y;
void dijkstra(void)
{    pq.push({0,1});
     while(!pq.empty())
     {   y=pq.top().second;
         x=pq.top().first;

         for(auto i:v[y])
         {  cout<<-x-i.second<<" ";
            if(dist[i.first]>-x-i.second)
            {
                dist[i.first]=-x-i.second;
                pq.push({-dist[i.first],i.second});

            }

         }
         pq.pop();
     }

}
int a,b,c,n,m;
int main()
{
    fin>>n>>m;
    for(int i=1;i<=m;i++)
    {
        fin>>a>>b>>c;
        v[b].push_back({a,-c});
        v[a].push_back({b,-c});
    }
    for(int i=1;i<=n;i++)
        dist[i]=999999999;
    dijkstra();
    for(int i=2;i<=n;i++)
    {
        fout<<dist[i]<<' ';
    }
    return 0;
}