#include "roads.h"
#include <vector>
#include <algorithm>
using namespace std;
vector<vector<int>> adj;
vector<long long> ans;
vector<long long> minimum_closure_costs(int n, vector<int> u, vector<int> v, vector<int> w) {
    // adj.resize(n+1);
    // ans.resize(n);
    // for (int i = 0; i < n-1; i++) {
    //     adj[u[i]].push_back(v[i]);
    //     adj[v[i]].push_back(u[i]);
    // }
    
    for (int i = 0; i < n-1; i++) ans[0] += w[i];
    vector<long long> dp0(n);
    vector<long long> dp1(n);
    dp0[0]= 0; // 
    dp1[0] = 0; //
    
    // road i is i->i+1
    for (int i = 1; i < n; i++) {
        dp0[i] = min(dp0[i-1], dp1[i-1]) + w[i-1];
        dp1[i] = dp0[i-1];
    }
    ans[1] = min(dp0[n-1], dp1[n-1]);
    return ans;
}
| # | 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... |