| 18776 | 2025-11-04 17:51:36 | algopro | Fire on a Tree | cpp17 | Time limit exceeded 60/100 | 1.101s | 72500 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) << " ";
}
}
| Subtask | Sum | Test | Verdict | Time | Memory | ||
|---|---|---|---|---|---|---|---|
| subtask1 | 0/0 | ||||||
| 1 | Accepted | 1ms | 316 KiB | ||||
| 2 | Accepted | 1ms | 316 KiB | ||||
| subtask2 | 35/35 | ||||||
| 3 | Accepted | 1ms | 316 KiB | ||||
| 4 | Accepted | 1ms | 384 KiB | ||||
| 5 | Accepted | 1ms | 316 KiB | ||||
| 6 | Accepted | 1ms | 316 KiB | ||||
| 7 | Accepted | 1ms | 316 KiB | ||||
| subtask3 | 25/25 | ||||||
| 8 | Accepted | 3ms | 564 KiB | ||||
| 9 | Accepted | 3ms | 820 KiB | ||||
| 10 | Accepted | 3ms | 1268 KiB | ||||
| 11 | Accepted | 21ms | 820 KiB | ||||
| 12 | Accepted | 3ms | 820 KiB | ||||
| 13 | Accepted | 3ms | 820 KiB | ||||
| subtask4 | 0/40 | ||||||
| 14 | Accepted | 280ms | 34824 KiB | ||||
| 15 | Time limit exceeded | 1.101s | 26984 KiB | ||||
| 16 | Accepted | 316ms | 72500 KiB | ||||
| 17 | Time limit exceeded | 1.101s | 34444 KiB | ||||
| 18 | Accepted | 651ms | 57396 KiB | ||||
| 19 | Accepted | 714ms | 60980 KiB | ||||
| 20 | Time limit exceeded | 1.09s | 34472 KiB | ||||
| 21 | Accepted | 699ms | 59748 KiB | ||||
| 22 | Accepted | 458ms | 60980 KiB | ||||