Cod sursa(job #2880948)

Utilizator ntv2996Harry fod ntv2996 Data 30 martie 2022 10:19:32
Problema Ubuntzei Scor 20
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.12 kb
#include<bits/stdc++.h>
using namespace std;
#define int long long
#define ii pair<int , int>
const int INF = 1e18;
int n, m, k;
vector<vector<ii>> adj;
vector<int> d, p, path;
priority_queue<ii , vector<ii> , greater<ii>> q;
void dijkstra(int s) {
    d.assign(n, INF);
    p.assign(n, -1);
    d[s]=0;
    q.push({d[s], s});
    while(!q.empty()){
        int v=q.top().second, d_v=q.top().first;
        q.pop();
        if (d_v!=d[v]) continue;
        for (auto edge : adj[v]) {
            int to = edge.first, len = edge.second;
            if(d[v] + len < d[to]) {
                d[to] = d[v] + len;
                p[to] = v;
                q.push({d[to] , to});
            }
        }
    }
}
signed main(){
    freopen("ubuntzei.in","r",stdin);
    freopen("ubuntzei.out","w",stdout);
    cin>>n>>m>>k;
    adj.assign(n, vector<pair<int, int>>());
    int c[k];
    for(int i=0;i<k;i++){
        cin>>c[i];
    }
    while(m--){
        int a, b, w;
        cin>>a>>b>>w;
        adj[a-1].push_back({b-1, w});
        adj[b-1].push_back({a-1, w});
    }
    dijkstra(0);
    cout<<d[n-1];
}