Cod sursa(job #3041012)

Utilizator LilGoat_4109Calin Andrei Cristian LilGoat_4109 Data 30 martie 2023 19:47:37
Problema Algoritmul lui Dijkstra Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.89 kb
#include <bits/stdc++.h>

using namespace std;
ifstream fin("dijkstra.in");
ofstream fout("dijkstra.out");
vector<pair<int,int>> v[250010];
int vizitat[50010],distanta[50010];
int n,m;
int main()
{
    fin>>n>>m;
    int x,y,w;
    while(fin>>x>>y>>w){
        v[x].push_back({y,w});
    }
    priority_queue<pair<int,int>> q;
    q.push({0,1});
    while(!q.empty()){
        int k=q.top().second;
        q.pop();
        if(vizitat[k]==0){
            vizitat[k]=1;
            for(auto element:v[k]){
                int i=element.first;
                int weight=element.second;
                if(distanta[i]>distanta[k]+weight || distanta[i]==0){
                    distanta[i]=distanta[k]+weight;
                    q.push({-distanta[i],i});
                }
            }
        }
    }
    for(int i=2;i<=n;++i)
            fout<<distanta[i]<<" ";
    return 0;
}