Submission #1356727

#TimeUsernameProblemLanguageResultExecution timeMemory
1356727MunkhErdeneRoad Closures (APIO21_roads)C++17
0 / 100
16 ms4876 KiB
#include "roads.h"

#include <bits/stdc++.h>
using namespace std;
using ll = long long;

#define pb push_back
#define all(x) x.begin(), x.end()
#define rall(x) x.rbegin(), x.rend()
#define FOR(i, a, b) for(ll i = (a); i < (b); ++i)
#define FORD(i, a, b) for(ll i = (a); i >= (b); --i)
#define ok cout << "ok\n";
std::vector<ll> minimum_closure_costs(int n, std::vector<int> U, std::vector<int> V, std::vector<int> W) {
    vector<ll> w(n - 1);
    FOR(i, 0, n - 1) w[i] = W[i];
    vector<ll> dp(n - 1);
    dp[0] = w[0];
    if(n > 2) dp[1] = w[1];
    FOR(i, 2, n - 1) dp[i] = min(dp[i - 2] + w[i], dp[i - 1] + w[i]);
    vector<ll> res(n, 0);
    res[0] = accumulate(all(w), 0LL);
    res[1] = dp[n - 1];
    if(n > 2) {
        res[1] = min(res[1], dp[n - 2]);
    }
    return res;
}

#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...