Submission #654683

#TimeUsernameProblemLanguageResultExecution timeMemory
654683Sam_a17Road Closures (APIO21_roads)C++14
12 / 100
53 ms11068 KiB
#include <bits/stdc++.h> using namespace std; #define all(x) x.begin(), x.end() // const long long inf = 1e18; vector<long long> minimum_closure_costs(int N, vector<int> U, vector<int> V, vector<int> W) { bool flag1 = true, flag2 = true;; for(int i = 0; i < N - 1; i++) { if(U[i] != 0) { flag1 = false; } if(U[i] != i || V[i] != i + 1) { flag2 = false; } } if(flag1) { sort(all(W)); vector<long long> answ(N, 0); int it = 0; for(int i = N - 2; i >= 0; i--) { answ[i] = answ[i + 1] + W[it++]; } return answ; } if(flag2) { vector<long long> answ(N, 0); for(auto i: W) { answ[0] += i; } vector<vector<long long>> dp(N, vector<long long> (2, 0)); dp[0][0] = 0; dp[0][1] = 0; for(int i = 1; i < N; i++) { dp[i][0] = min(dp[i - 1][1], dp[i - 1][0]) + W[i - 1]; dp[i][1] = dp[i - 1][0]; } answ[1] = min(dp[N - 1][0], dp[N - 1][1]); return answ; } return vector<long long>(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...