Submission #52095713


Source Code Expand

/**
 *  @the_hyp0cr1t3
 *  06.04.2024 18:09
**/
#include <bits/stdc++.h>

using i64 = long long;

int main() {
    std::cin.tie(nullptr)->sync_with_stdio(false);

    int n;
    std::cin >> n;
    std::vector<std::vector<int>> g(n);
    for (int i = 1; i < n; i++) {
        int u, v;
        std::cin >> u >> v;
        --u, --v;
        g[u].emplace_back(v);
        g[v].emplace_back(u);
    }
    std::vector<int> c(n);
    for (auto &x : c)
        std::cin >> x;

    i64 C = std::accumulate(c.begin(), c.end(), 0LL);

    i64 sum = 0;
    std::vector<i64> sub(n);
    auto dfs = [&](auto &&self, int u, int p, int d) -> void {
        sum += 1LL * c[u] * d;
        sub[u] = c[u];
        for (auto v : g[u]) {
            if (v == p) continue;
            self(self, v, u, d + 1);
            sub[u] += sub[v];
        }
    };
    dfs(dfs, 0, -1, 0);

    i64 ans = LLONG_MAX;
    auto dfs2 = [&](auto &&self, int u, int p) -> void {
        ans = std::min(ans, sum);
        for (auto v : g[u]) {
            if (v == p) continue;
            sum += C - 2 * sub[v];
            self(self, v, u);
            sum -= C - 2 * sub[v];
        }
    };
    dfs2(dfs2, 0, -1);

    std::cout << ans << '\n';
}

Submission Info

Submission Time
Task E - Minimize Sum of Distances
User the_hyp0cr1t3
Language C++ 20 (gcc 12.2)
Score 475
Code Size 1268 Byte
Status AC
Exec Time 80 ms
Memory 13916 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 475 / 475
Status
AC × 3
AC × 31
Set Name Test Cases
Sample example0.txt, example1.txt, example2.txt
All example0.txt, example1.txt, example2.txt, test_00.txt, test_01.txt, test_02.txt, test_03.txt, test_04.txt, test_05.txt, test_06.txt, test_07.txt, test_08.txt, test_09.txt, test_10.txt, test_11.txt, test_12.txt, test_13.txt, test_14.txt, test_15.txt, test_16.txt, test_17.txt, test_18.txt, test_19.txt, test_20.txt, test_21.txt, test_22.txt, test_23.txt, test_24.txt, test_25.txt, test_26.txt, test_27.txt
Case Name Status Exec Time Memory
example0.txt AC 1 ms 3508 KiB
example1.txt AC 1 ms 3492 KiB
example2.txt AC 1 ms 3356 KiB
test_00.txt AC 27 ms 7276 KiB
test_01.txt AC 16 ms 6004 KiB
test_02.txt AC 34 ms 8068 KiB
test_03.txt AC 5 ms 4528 KiB
test_04.txt AC 23 ms 8392 KiB
test_05.txt AC 12 ms 6152 KiB
test_06.txt AC 21 ms 7304 KiB
test_07.txt AC 19 ms 7436 KiB
test_08.txt AC 14 ms 6204 KiB
test_09.txt AC 52 ms 9688 KiB
test_10.txt AC 49 ms 9776 KiB
test_11.txt AC 51 ms 9640 KiB
test_12.txt AC 50 ms 9716 KiB
test_13.txt AC 53 ms 9948 KiB
test_14.txt AC 44 ms 9604 KiB
test_15.txt AC 32 ms 10184 KiB
test_16.txt AC 29 ms 10200 KiB
test_17.txt AC 34 ms 10228 KiB
test_18.txt AC 30 ms 10252 KiB
test_19.txt AC 34 ms 10212 KiB
test_20.txt AC 30 ms 10132 KiB
test_21.txt AC 80 ms 13616 KiB
test_22.txt AC 76 ms 13916 KiB
test_23.txt AC 80 ms 12944 KiB
test_24.txt AC 78 ms 12284 KiB
test_25.txt AC 72 ms 13160 KiB
test_26.txt AC 76 ms 13080 KiB
test_27.txt AC 1 ms 3488 KiB