Submission #1366893

#TimeUsernameProblemLanguageResultExecution timeMemory
1366893gelastropodCollecting Stamps 5 (JOI26_stamps)C++20
0 / 100
43 ms744 KiB
#pragma GCC optimize("O3,inline")
#include <bits/stdc++.h>
using namespace std;
#define int long long

int D;
vector<int> T;
vector<vector<int>> adjlist;

int dfs(int n, int p, int cd, int ci) {
	int res = 0;
	if (ci || (T[n] <= cd && cd <= D)) res++;
	for (int i : adjlist[n]) {
		if (i == p) continue;
		res += dfs(i, n, cd + 1, res);
	}
	return res;
}

signed main() {
	ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
	int N, a, b; cin >> N >> D;
	adjlist.resize(N, vector<int>());
	for (int i = 0; i < N; i++) {
		cin >> a;
		T.push_back(a);
	}
	for (int i = 0; i < N - 1; i++) {
		cin >> a >> b; a--, b--;
		adjlist[a].push_back(b);
		adjlist[b].push_back(a);
	}
	for (int i = 0; i < N; i++) {
		cout << dfs(i, -1, 0, 0) << '\n';
	}
}
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...