Submission #284329

#TimeUsernameProblemLanguageResultExecution timeMemory
284329PyqeJob Scheduling (IOI19_job)C++14
24 / 100
181 ms41352 KiB
#include "job.h" #include <bits/stdc++.h> using namespace std; #define mp make_pair #define fr first #define sc second long long n,as[200069],pst[200069],dp[200069],dh[200069]; pair<long long,long long> a[200069]; vector<long long> al[200069]; bitset<200069> vtd; bool cmp(long long x,long long y) { return a[x].fr*a[y].sc<a[y].fr*a[x].sc; } void bd(long long x) { long long i,sz=al[x].size(),l; vtd[x]=1; dp[x]=pst[x]; for(i=0;i<sz;i++) { l=al[x][i]; if(!vtd[l]) { dh[l]=dh[x]+1; bd(l); dp[x]=min(dp[x],dp[l]); } } } bool cmp2(long long x,long long y) { return mp(dp[x],dh[x])<mp(dp[y],dh[y]); } long long scheduling_cost(vector<int> p,vector<int> u,vector<int> d) { long long i,sm=0,z=0; n=p.size(); for(i=1;i<=n;i++) { as[i]=i; a[i]={d[i-1],u[i-1]}; if(i-1) { al[p[i-1]+1].push_back(i); } } sort(as+1,as+n+1,cmp); for(i=1;i<=n;i++) { pst[as[i]]=i; as[i]=i; } bd(1); sort(as+1,as+n+1,cmp2); for(i=1;i<=n;i++) { sm+=a[as[i]].fr; z+=a[as[i]].sc*sm; } return z; }
#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...