Submission #1173394

#TimeUsernameProblemLanguageResultExecution timeMemory
1173394adkjtJob Scheduling (IOI19_job)C++20
12 / 100
64 ms8128 KiB
#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 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...