#include "job.h"
#include <vector>
#include<bits/stdc++.h>
using namespace std;
#define pii pair<pair<int,int>,int>
#define f first
#define s second
#define ll long long
int out[222222];
priority_queue<pii> pq;
long long scheduling_cost(std::vector<int> p, std::vector<int> u, std::vector<int> d) {
ll timesum=d[0];
int n=p.size();
for(int i=1;i<n;i++)
{
out[p[i]]++;
timesum+=d[i];
}
ll ans=0;
for(int i=0;i<n;i++)
{
ans+=u[i]*d[i];
if(out[i]==0)
{
pq.push({{-u[i],d[i]},i});
}
}
while(!pq.empty())
{
pii now=pq.top();
pq.pop();
ans+=(-now.f.f)*(timesum-now.f.s);
timesum-=now.f.s;
if(now.s==0) break;
out[p[now.s]]--;
if(out[p[now.s]]==0) pq.push({{-u[p[now.s]],d[p[now.s]]},p[now.s]});
}
return ans;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |