187802025-11-04 17:57:59algoproFire on a Treecpp17Time limit exceeded 60/1001.101s39544 KiB
// UUID: c98aff92-d023-4b50-b721-30bb16fc5ca1
#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<pair<int,int>>>adj(n);
    for(int i = 1; i < n; i++){
        int a,b;
        cin >> a >> b;
        adj[a].push_back({b,n});
        adj[b].push_back({a, n});
    }
    vector<map<int,int>>cache(n);

    function<int(int,int)> dfs;
    dfs = [&](int cs, int p){
        int sum = 0, ln = 0;
        for(auto& [i, m] : adj[cs]){
            if(i != p){
                if(m == n)m = dfs(i,cs);
                sum += m;
                ln = max(ln, m);
            }
        }
        return 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
4Accepted1ms508 KiB
5Accepted1ms316 KiB
6Accepted1ms316 KiB
7Accepted1ms316 KiB
subtask325/25
8Accepted1ms316 KiB
9Accepted2ms564 KiB
10Accepted2ms820 KiB
11Accepted4ms564 KiB
12Accepted2ms564 KiB
13Accepted2ms564 KiB
subtask40/40
14Accepted98ms14644 KiB
15Time limit exceeded1.101s18816 KiB
16Accepted224ms39544 KiB
17Time limit exceeded1.1s24172 KiB
18Accepted200ms25140 KiB
19Accepted317ms26680 KiB
20Time limit exceeded1.082s24252 KiB
21Accepted261ms25140 KiB
22Accepted244ms26660 KiB