Cod sursa(job #3040481)

Utilizator LilGoat_4109Calin Andrei Cristian LilGoat_4109 Data 29 martie 2023 22:12:49
Problema Algoritmul lui Dijkstra Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.9 kb
#include <bits/stdc++.h>

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