제출 #432219

#제출 시각아이디문제언어결과실행 시간메모리
432219BertedJob Scheduling (IOI19_job)C++14
24 / 100
195 ms19768 KiB
#include "job.h" #include <vector> #include <cassert> #include <algorithm> #include <queue> #define vi vector<int> #define ll long long #define pii pair<ll, ll> #define ppi pair<pii, ll> #define fst first #define snd second using namespace std; int N; pii A[200001]; vi adj[200001]; inline bool comp(const ppi &l, const ppi &r) { return make_pair(l.fst.fst * r.fst.snd, l.snd) < make_pair(r.fst.fst * l.fst.snd, r.snd); } priority_queue<ppi, vector<ppi>, decltype(&comp)> pq(comp); long long scheduling_cost(vi p, vi u, vi d) { N = p.size(); ll t = 0, res = 0; for (int i = 1; i < N; i++) adj[p[i]].push_back(i); pq.push({{u[0], d[0]}, 0}); while (pq.size()) { int uu = pq.top().snd; pii vv = pq.top().fst; pq.pop(); t += vv.snd; res += t * vv.fst; for (const auto &w : adj[uu]) { pq.push({{u[w], d[w]}, w}); } } return res; }
#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...