Submission #417387

#TimeUsernameProblemLanguageResultExecution timeMemory
417387maximath_1Job Scheduling (IOI19_job)C++17
24 / 100
153 ms19204 KiB
#include "job.h" #include <vector> #include <queue> #include <iostream> using namespace std; #define ll long long struct job{ int u, d, id; bool operator < (const job &rhs) const{ return d * 1ll * rhs.u > u * 1ll * rhs.d; } }; vector<int> adj[200005]; long long scheduling_cost(vector<int> p, vector<int> u, vector<int> d){ int n = p.size(); for(int i = 1; i < n; i ++) adj[p[i]].push_back(i); priority_queue<job> pq; pq.push({u[0], d[0], 0}); ll ans = 0ll, tim = 0ll; for(; pq.size();){ auto nw = pq.top(); pq.pop(); tim += d[nw.id]; ans += tim * 1ll * u[nw.id]; for(int nx : adj[nw.id]) pq.push({u[nx], d[nx], nx}); } return 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...