제출 #145202

#제출 시각아이디문제언어결과실행 시간메모리
145202dolphingarlic구슬과 끈 (APIO14_beads)C++14
컴파일 에러
0 ms0 KiB
#include <bits/stdc++.h> #pragma GCC Optimize("O3") #define FOR(i, x, y) for (ll i = x; i < y; i++) #define MOD 1000000007 typedef long long ll; using namespace std; vector<pair<ll, ll>> graph[200001]; ll dp1[200001], dp2[200001], dp3[200001]; void dfs(ll node, ll parent, ll edge) { ll best = -1, second = -1; ll best_val = ll_MIN, second_val = ll_MIN; for (pair<ll, ll> i : graph[node]) { if (i.first != parent) { dfs(i.first, node, i.second); dp1[node] += max(dp1[i.first], max(dp2[i.first], dp3[i.first])); if (max(dp1[i.first], dp2[i.first]) + i.second - dp3[i.first] > best_val) { second = best; second_val = best_val; best = i.first; best_val = max(dp1[i.first], dp2[i.first]) + i.second - dp3[i.first]; } else if (max(dp1[i.first], dp2[i.first]) + i.second - dp3[i.first] > second_val) { second = i.first; second_val = max(dp1[i.first], dp2[i.first]) + i.second - dp3[i.first]; } } } for (pair<ll, ll> i : graph[node]) { if (i.first != parent) { if (i.first == best) { dp2[node] += max(dp1[i.first], dp2[i.first]) + i.second; dp3[node] += max(dp1[i.first], dp2[i.first]) + i.second + edge; } else if (i.first == second) { dp2[node] += max(dp1[i.first], dp2[i.first]) + i.second; dp3[node] += max(dp1[i.first], max(dp2[i.first], dp3[i.first])); } else { dp2[node] += max(dp1[i.first], max(dp2[i.first], dp3[i.first])); dp3[node] += max(dp1[i.first], max(dp2[i.first], dp3[i.first])); } } } if (best == -1 || node == 1) dp3[node] = 0; if (second == -1) dp2[node] = 0; } int main() { iostream::sync_with_stdio(false); cin.tie(0); ll n; cin >> n; FOR(i, 1, n) { ll a, b, c; cin >> a >> b >> c; graph[a].push_back({b, c}); graph[b].push_back({a, c}); } dfs(1, 0, 0); cout << max(dp1[1], dp2[1]) << '\n'; return 0; }

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

beads.cpp:2:0: warning: ignoring #pragma GCC Optimize [-Wunknown-pragmas]
 #pragma GCC Optimize("O3")
 
beads.cpp: In function 'void dfs(ll, ll, ll)':
beads.cpp:13:19: error: 'll_MIN' was not declared in this scope
     ll best_val = ll_MIN, second_val = ll_MIN;
                   ^~~~~~
beads.cpp:13:19: note: suggested alternative: 'FLT_MIN'
     ll best_val = ll_MIN, second_val = ll_MIN;
                   ^~~~~~
                   FLT_MIN
beads.cpp:23:17: error: 'second_val' was not declared in this scope
                 second_val = best_val;
                 ^~~~~~~~~~
beads.cpp:23:17: note: suggested alternative: 'second'
                 second_val = best_val;
                 ^~~~~~~~~~
                 second
beads.cpp:27:84: error: 'second_val' was not declared in this scope
             } else if (max(dp1[i.first], dp2[i.first]) + i.second - dp3[i.first] > second_val) {
                                                                                    ^~~~~~~~~~
beads.cpp:27:84: note: suggested alternative: 'second'
             } else if (max(dp1[i.first], dp2[i.first]) + i.second - dp3[i.first] > second_val) {
                                                                                    ^~~~~~~~~~
                                                                                    second