제출 #936227

#제출 시각아이디문제언어결과실행 시간메모리
936227VMaksimoski008Harbingers (CEOI09_harbingers)C++14
20 / 100
1080 ms12980 KiB
#include <bits/stdc++.h> #define sz(x) (int)x.size() #define all(x) x.begin(), x.end() #define rall(x) x.rbegin(), x.rend() //#define int long long using namespace std; using ll = long long; using ull = unsigned long long; using ld = long double; using pii = pair<int, int>; using pll = pair<ll, ll>; const int mod = 1e9 + 7; const int LOG = 20; const int maxn = 1e5 + 5; const double eps = 1e-9; int n; vector<vector<pii> > graph; pii H[maxn]; vector<int> st; ll dp[maxn], dist[maxn]; void dfs(int u, int p) { dp[u] = H[u].first + H[u].second * dist[u]; for(int &id : st) dp[u] = min(dp[u], H[u].first + H[u].second * (dist[u] - dist[id]) + dp[id]); st.push_back(u); for(auto &[v, w] : graph[u]) { if(v == p) continue; dist[v] = dist[u] + w; dfs(v, u); } st.pop_back(); } int32_t main() { cin >> n; graph.resize(n+1); for(int i=1; i<=n; i++) dp[i] = 1e18; dp[1] = 0; for(int i=0; i<n-1; i++) { int a, b, w; cin >> a >> b >> w; graph[a].push_back({ b, w }); graph[b].push_back({ a, w }); } for(int i=2; i<=n; i++) cin >> H[i].first >> H[i].second; dfs(1, 0); for(int i=2; i<=n; i++) cout << dp[i] << " "; return 0; }

컴파일 시 표준 에러 (stderr) 메시지

harbingers.cpp: In function 'void dfs(int, int)':
harbingers.cpp:35:15: warning: structured bindings only available with '-std=c++17' or '-std=gnu++17'
   35 |     for(auto &[v, w] : graph[u]) {
      |               ^
#Verdict Execution timeMemoryGrader output
Fetching results...