Cod sursa(job #2202587)

Utilizator TheGeneralArion Dan TheGeneral Data 9 mai 2018 11:39:41
Problema Algoritmul lui Dijkstra Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 1.09 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)
{  dist[1]=0;  pq.push({0,1});
     while(!pq.empty())
     {   y=pq.top().second;
         x=pq.top().first;
         pq.pop();
         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.first});

            }

         }///arion dan vasile este foarte prost in pll(adica ca un fel de plm doar ca ma refer la pl lui XD)
         ///te pup dulce !!! :***

     }

}
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;
}