Submission #981266

#TimeUsernameProblemLanguageResultExecution timeMemory
981266Faisal_SaqibRoad Closures (APIO21_roads)C++17
5 / 100
40 ms3784 KiB
#include "roads.h" #include <bits/stdc++.h> //#include "grader.cpp" #include <vector> using namespace std; #define ll long long vector<ll> subtask1(int n,vector<int>&u,vector<int>&v,vector<int>&w) { vector<ll> ans(n); sort(begin(w),end(w)); ans[0]=0; for(int i=0;i<(n-1);i++) ans[0]+=w[i]; for(int i=1;i<n;i++) ans[i]=ans[i-1]-w[n-i-1]; return ans; } vector<ll> subtask2(int n,vector<int>&u,vector<int>&v,vector<int>&w) { vector<long long> ans(n); vector<ll> f(n+2); f[0]=f[1]=0; for(int i=2;i<(n);i++) f[i]=min(((ll)w[i-1])+f[i-1],((ll)w[i-2])+f[i-2]); for(int i=0;i<(n-1);i++) ans[0]+=((ll)w[i]); ans[1]=f[n-1]; return ans; } vector<long long> minimum_closure_costs(int n, std::vector<int> u,std::vector<int> v,std::vector<int> w) { bool subtask11=1,subtask22=1; for(int i=0;i<n;i++) { subtask11&=(u[i]==0); subtask22&=(u[i]==i and v[i]==(i+1)); } if(subtask11) { return subtask1(n,u,v,w); } else if(subtask22){ return subtask2(n,u,v,w); } else{ return vector<ll>(n,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...
#Verdict Execution timeMemoryGrader output
Fetching results...