187762025-11-04 17:51:36algoproFire on a Treecpp17Time limit exceeded 60/1001.101s72500 KiB
// UUID: 69f3773f-0402-48d5-9ca4-a0ca435f7974
#include <bits/stdc++.h>
using namespace std;
#define int long long



signed main() {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    int n;
    cin >> n;
    vector<vector<int>>adj(n);
    for(int i = 1; i < n; i++){
        int a,b;
        cin >> a >> b;
        adj[a].push_back(b);
        adj[b].push_back(a);
    }
    vector<map<int,int>>cache(n);

    function<int(int,int)> dfs;
    dfs = [&](int cs, int p){
        if(cache[cs].count(p))return cache[cs][p];
        int sum = 0, ln = 0;
        for(int i : adj[cs]){
            if(i != p){
                int res = dfs(i, cs);
                sum += res;
                ln = max(ln, res);
            }
        }
        return cache[cs][p] = sum - ln +1;
    };

    for(int i = 0; i < n; i++){
        cout << dfs(i, -1) << " ";
    }
}
SubtaskSumTestVerdictTimeMemory
subtask10/0
1Accepted1ms316 KiB
2Accepted1ms316 KiB
subtask235/35
3Accepted1ms316 KiB
4Accepted1ms384 KiB
5Accepted1ms316 KiB
6Accepted1ms316 KiB
7Accepted1ms316 KiB
subtask325/25
8Accepted3ms564 KiB
9Accepted3ms820 KiB
10Accepted3ms1268 KiB
11Accepted21ms820 KiB
12Accepted3ms820 KiB
13Accepted3ms820 KiB
subtask40/40
14Accepted280ms34824 KiB
15Time limit exceeded1.101s26984 KiB
16Accepted316ms72500 KiB
17Time limit exceeded1.101s34444 KiB
18Accepted651ms57396 KiB
19Accepted714ms60980 KiB
20Time limit exceeded1.09s34472 KiB
21Accepted699ms59748 KiB
22Accepted458ms60980 KiB