#include "roads.h"
#include <bits/stdc++.h>
#include <vector>
using namespace std;
typedef long long ll;
const int MAXN = 100005;
int con[MAXN];
int n;
ll total = 0;
ll dp[MAXN];
ll w[MAXN];
ll solve(int i){
if (dp[i] != -1)
return dp[i];
if (i == n - 1)
return w[i];
if (i == n - 2)
return max(w[i], w[i + 1]);
dp[i] = max(w[i] + solve(i + 2), solve(i + 1));
return dp[i];
}
std::vector<long long> minimum_closure_costs(int N, std::vector<int> U, std::vector<int> V, std::vector<int> W) {
n = N;
for (int i = 0; i < n - 1; i++)
w[i] = (ll)W[i], total += w[i];
vector<ll> res;
memset(dp, -1, sizeof dp);
res.push_back(total);
res.push_back(total - solve(0));
for (int i = 0; i < n - 2; i++)
res.push_back(0);
return res;
}
# | 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... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |