# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1133732 | PagodePaiva | Road Closures (APIO21_roads) | C++17 | 360 ms | 65860 KiB |
#include<bits/stdc++.h>
#include "roads.h"
#include <vector>
#define ll long long
using namespace std;
const ll N = 2010;
const ll inf = 1e18/N;
vector <pair<ll, ll>> g[N];
ll dp[N][N][2];
void solve(ll p, ll v, ll k, ll fg){
if(dp[v][k][fg] != -1) return;
ll sum = 0;
vector <ll> best;
for(auto [x, w] : g[v]){
if(x == p) continue;
solve(v, x, k, 0);
solve(v, x, k, 1);
sum += dp[x][k][0];
best.push_back(dp[x][k][1]-dp[x][k][0]+w);
}
ll deg = g[v].size();
deg -= fg;
sort(best.begin(), best.end());
reverse(best.begin(), best.end());
while(deg > k or (!best.empty() ? best.back() <= 0 : false)){
if(best.empty()) break;
sum += best.back();
# | 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... |