제출 #1145302

#제출 시각아이디문제언어결과실행 시간메모리
1145302keaucucalJobs (BOI24_jobs)C++20
0 / 100
193 ms17180 KiB
#include <iostream> #include <vector> #include <queue> #include <utility> using namespace std; using ll = long long; int main() { ll n, s; cin >> n >> s; vector<int> val(n + 1); vector<vector<int>> adj(n + 1); priority_queue<pair<int, int>> pq; for (int i = 1; i <= n; i++) { int p; cin >> val[i] >> p; adj[p].push_back(i); if (p == 0) { pq.push(make_pair(val[i], i)); } } ll ans = 0; while (!pq.empty()) { int sum = pq.top().first; int u = pq.top().second; pq.pop(); if (sum > 0) { // cout << u << ' ' << sum << '\n'; ans += sum; sum = 0; } for (int v : adj[u]) { pq.push(make_pair(sum + val[v], v)); } } cout << ans << '\n'; // cout << ans << '\n'; // cout << ans - s << '\n'; }
#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...