제출 #1142410

#제출 시각아이디문제언어결과실행 시간메모리
1142410am_aadvikElection Campaign (JOI15_election_campaign)C++20
0 / 100
138 ms12760 KiB
#include <iostream> #include<algorithm> #include<vector> using namespace std; int main() { int n, v; cin >> n; for (int i = 1; i < n; ++i) cin >> v >> v; int m; cin >> m; vector<vector<int>> s, e; vector<int> dp(m), mx(m + 1), idx(m); for (int i = 0; i < m; ++i) { int x, y, z; cin >> x >> y >> z; if (x > y) swap(x, y); s.push_back({ x, y, z, i }); e.push_back({ y, x, z, i }); } sort(s.begin(), s.end()); for (int i = m - 1; i >= 0; --i) idx[s[i][3]] = i, dp[i] = s[i][2], mx[i] = max(mx[i + 1], s[i][2]); sort(e.begin(), e.end()); int ans = 0; for (int i = m - 1; i >= 0; --i) { vector<int> x = { s[i][1] + 1, 0, 0, 0 }; auto it = lower_bound(s.begin(), s.end(), x); mx[i] = max(mx[i], mx[i + 1]); if (it == s.end()) continue; int ix = idx[(*it)[3]]; dp[i] = s[i][2] + mx[ix]; mx[i] = max(dp[i], mx[i]); ans = max(ans, dp[i]); } cout << ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...