제출 #1348958

#제출 시각아이디문제언어결과실행 시간메모리
1348958jumpBirokracija (COCI18_birokracija)C++20
70 / 100
48 ms14672 KiB
#include <bits/stdc++.h>

std::vector<int> child[500010];
int ans[500010];
std::pair<int,int> dfs(int curr){
	int size = 1;
	int money = 1;
	for(auto to:child[curr]){
		auto v = dfs(to);
		size+=v.first;
		money+=v.second;
	}
	money+=size-1;
	ans[curr]=money;
	return {size,money};
}
signed main(){
	int n;
	std::cin >> n;
	for(int i=2;i<=n;i++){
		int boss;
		std::cin >> boss;
		child[boss].push_back(i);
	}
	dfs(1);
	for(int i=1;i<=n;i++)std::cout << ans[i] << ' ';
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...