#include "roads.h"
#define F first
#define S second
#define ll long long
#define in insert
#define pb push_back
#include <bits/stdc++.h>
using namespace std;
const int N=1e5+5;
ll dp[N];
std::vector<long long> minimum_closure_costs(int N, std::vector<int> U,std::vector<int> V,std::vector<int> W){
int n=N;
vector<ll> ret;
ll sum=0;
for(auto u : W) sum+=u;
ret.pb(sum);
dp[0]=W[0];dp[1]=W[1];
ll mx=0;
for(int i=2;i<N-1;i++){
dp[i]=W[i]+dp[i-2];
if(i-3>=0) dp[i]=max(dp[i],W[i]+dp[i-3]);
}
for(int i=0;i<N-1;i++) mx=max(mx,dp[i]);
//for(int i=0;i<N-1;i++) cout<<" # "<<i<<' '<<dp[i]<<endl;
for(int i=1;i<n-1;i++){
if(i==1) ret.pb(sum-mx);
else ret.pb(0);
}
return ret;
}
# | 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... |