#include <bits/stdc++.h>
using namespace std;
#define int long long
const int Nmax = 1e6 + 27;
const int SZ = 600;
const int LogN = 18;
const int MOD = 1e9 + 7;
int n , m;
int v[Nmax] , dist[Nmax];
priority_queue <pair <int , int> , vector<pair <int , int>> , greater <pair <int , int>>> Q;
vector <pair <int , int>> graph[Nmax];
void Dij ()
{
for (int i = 1 ; i <= n ; i++)
{
dist[i] -= v[i];
Q.push({dist[i] , i});
}
while(!Q.empty())
{
int u = Q.top().second;
Q.pop();
for (pair <int , int> v : graph[u])
{
//if(v.first == 2) cout << v.second << ' ' << dist[u] + v.second << '\n';
if(dist[v.first] > dist[u] + v.second)
{
dist[v.first] = dist[u] + v.second;
Q.push({dist[v.first] , v.first});
}
}
}
}
main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
cin >> n >> m;
for (int i = 1 ; i <= n ; i++)
cin >> v[i];
for (int i = 1 ; i <= m ; i++)
{
int u , v , c;
cin >> u >> v >> c;
graph[u].push_back({v , c});
graph[v].push_back({u , c});
}
Dij();
for (int i = 1 ; i <= n ; i++) cout << -dist[i] << '\n';
}
Compilation message (stderr)
Main.cpp:40:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
40 | main()
| ^~~~
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |