Untitled
unknown
plain_text
a year ago
3.8 kB
9
Indexable
/*
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⣤⣶⣶⣾⣿⣿⣿⣿⣿⣶⣶⣦⣤⣀⠀⡰⠒⢲⠲⣄⡖⠒⢦⠤⡀⠀⠀⠀
⠀⠀⠀⠀⣀⣀⣀⠀⢀⣀⢀⣠⣴⣿⣟⣋⠿⠟⠛⠓⠒⠛⠻⢯⣉⢻⣿⣿⣿⣿⡟⠀⢀⡎⠀⡜⢧⠀⠈⡆⠘⡦⡀⠀
⠀⠀⣠⠊⠀⣸⠋⣹⠃⣨⣿⣽⣟⣩⣵⣶⣾⣿⠿⢿⣿⣶⣶⣤⡈⠛⢿⡟⠻⣿⡇⠀⢸⠀⢰⠁⠸⡆⠀⢱⠀⢱⢹⡀
⠀⣰⠁⠀⡴⠁⣰⣧⡾⢋⣵⣾⠋⠉⠙⠛⠋⠁⣤⣴⣿⣿⣿⣿⣿⣦⠀⠙⢶⣿⡁⠀⢸⠀⢸⣧⠀⡇⠀⢸⠀⢸⠀⡇
⢠⠇⢀⡜⠀⣰⣿⡟⢠⣿⣿⣟⣫⣵⣶⣶⣶⣶⣶⣽⣿⣿⣿⣿⣿⣿⣧⠀⠈⣧⡇⠀⠘⡄⠸⣿⣇⡇⠀⢸⠀⢸⠀⡇
⢸⠀⣼⣇⣼⣿⣿⢠⣼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⢂⣠⡿⢿⡆⠀⠈⠀⠹⠿⠃⠀⡆⠀⡎⠀⡇
⢸⡀⢿⣿⣿⣿⢿⣼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣽⣿⣿⣷⣾⣿⣦⣄⠀⠀⠀⠀⠘⢀⡜⠀⣰⠃
⠀⢧⠀⢻⡟⣷⣿⣿⣿⣿⣿⣿⡿⠟⠉⠉⠉⠉⡛⢿⣿⣿⣿⣿⣿⣿⣿⣿⣤⣿⣿⣿⣿⠿⠀⠀⠀⢀⣠⡈⣠⡶⠃⠀
⠀⠀⠣⣀⣹⣿⣿⣿⣿⣿⡿⣋⠀⠀⢀⡼⠀⠀⠛⠺⠿⣟⣟⣿⣿⠋⠉⠹⣿⣿⣿⣏⣿⣓⣁⣴⣾⠿⠿⠟⠋⠀⠀⠀
⠀⠀⢰⡀⠙⠻⣿⣿⣿⣿⠀⢠⣽⣶⣏⠀⠀⠀⠀⠀⠀⠀⣽⣿⣾⣝⡆⠀⢿⣿⣿⡀⠉⠙⠻⣿⡟⠀⠀⠀⠀⠀⠀⠀
⠀⢀⡸⢳⣀⡖⠉⣿⣿⣿⠀⡿⣿⣿⣿⢰⣾⡶⠀⠀⠀⠀⢻⣻⣿⣋⣇⡀⢸⣿⣿⣿⣷⣴⣴⡟⠀⠀⠀⠀⠀⠀⠀⠀
⠉⠛⢳⡔⠉⠙⠛⠻⣿⣿⡄⠾⠟⠛⠁⣄⣹⣀⣠⠔⠂⠀⠀⠀⠈⠉⠉⠁⣸⣿⣿⣿⣿⡿⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠸⠇⠀⠀⠀⠀⠈⢻⣧⠀⠀⠀⠀⢀⢻⣰⢃⠀⠀⠀⠀⠀⠀⢀⣀⣴⣿⣿⣿⠟⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⣿⣿⡷⠦⢦⣤⠿⠿⣥⣄⣴⣤⠴⠶⠾⠛⠋⠉⢻⣿⠇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢹⣿⠀⠀⢾⣿⣤⣤⣽⣿⡿⡉⢦⡀⠀⠀⠀⣶⣿⣿⡆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣸⣿⠀⠀⠀⣼⣿⡇⢿⣿⣋⣽⠀⠙⣄⠀⠀⠛⠉⠋⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢻⡏⠀⠀⣼⣛⣻⠿⣶⣿⣿⡋⠀⠀⠈⢧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣼⡟⣶⣿⣿⣁⡀⣀⣠⣀⣬⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡟⣿⣷⠞⣛⣿⣿⣿⣿⣿⣿⣿⡿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡼⠸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⢧⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣶⣻⣿⣿⣿⢟⣿⠟⢛⢹⣧⢿⢺⡇⠀⠀⠀
*/
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define all(v) v.begin(),v.end()
const ll inf=1e18;
const int N=1000000007;
const int M=200001;
// 人的梦想是没有尽头的,不是吗?-
vector<ll>v[M];
ll val[M];
void dfs(ll p){
if(v[p].size()==0){
return;
}
ll a=inf;
for(auto x:v[p]){
dfs(x);
a=min(a,val[x]);
}
if(a<=val[p]){
val[p]=a;
}else{
val[p]+=(a-val[p])/2;
}
return;
}
void code(){
ll n;
cin >> n;
for(ll i=1;i<=n;i++){
v[i].clear();
}
for(ll i=1;i<=n;i++){
cin >> val[i];
}
for(ll i=0;i<n-1;i++){
ll x;
cin >> x;
v[x].push_back(i+2);
}
dfs(1);
for(ll i=1;i<=n;i++){
cout << val[i] << " ";
}
// cout << val[1] << '\n';
}
int main(){
ios_base::sync_with_stdio(false);
cin.tie(NULL);
int tc=1;
cin >> tc;
for(int i=1;i<=tc;i++){
// cout << "Case " << i << ": ";
code();
}
return 0;
}
Editor is loading...
Leave a Comment