func_code_string: #include <bits/stdc++.h>   using namespace std;   const int N = 200 * 1000 + 13;   const long long INF64 = 1e18;   int n, m;   long long a[N];   vector<pair<int, long long>> g[N];   long long dist[N];   void Dijkstra() {     set<pair<long long, int>> q;     for (int i = 0; i < int(n); i++) {       dist[i] = a[i];       q.insert({dist[i], i});     }     while (!q.empty()) {       int v = q.begin()->second;       q.erase(q.begin());       for (auto it : g[v]) {         int u = it.first;         long long w = it.second;         if (dist[u] > dist[v] + w) {           q.erase({dist[u], u});           dist[u] = dist[v] + w;           q.insert({dist[u], u});         }       }     }   }   int main() {     scanf( %d%d , &n, &m);     for (int _ = 0; _ < int(m); _++) {       int f, t;       long long w;       scanf( %d%d%lld , &f, &t, &w);       --f, --t;       w *= 2;       g[f].push_back({t, w});       g[t].push_back({f, w});     }     for (int i = 0; i < int(n); i++) {       scanf( %lld , &a[i]);     }     Dijkstra();     for (int i = 0; i < int(n); i++) printf( %lld  , dist[i]);     puts(  );     return 0;   }   