Submission #143849

#TimeUsernameProblemLanguageResultExecution timeMemory
143849SpeedOfMagicJob Scheduling (IOI19_job)C++17
24 / 100
191 ms14416 KiB
#include "job.h" #include <bits/stdc++.h> using namespace std; typedef long long ll; //24 3 long long scheduling_cost(vector<int> p, vector<int> u, vector<int> d) { int n = p.size(); ll t = 0; for (int i : d) t += i; int out[n]; memset(out, 0, sizeof out); for (int i = 0; i < n; i++) if (p[i] != -1) out[p[i]]++; ll ans = 0; priority_queue<pair<long double, int>> cur; for (int i = 0; i < n; i++) if (out[i] == 0) cur.push({-(long double) u[i] / (long double) d[i], i}); while (!cur.empty()) { int ind = cur.top().second; //cout << ind << " " << t << endl; cur.pop(); ans += u[ind] * t; t -= d[ind]; out[p[ind]]--; if (out[p[ind]] == 0) cur.push({-(long double) u[p[ind]] / (long double) d[p[ind]], p[ind]}); } return ans; return 0; }
#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...