#include<bits/stdc++.h>
#pragma GCC optimize("Ofast","unroll-loops")
#define INF 2147483647
#define ll long long
#define ft first
#define sec second
#define pb push_back
#define pi pair<int,int>
using namespace std;
ll t,n,w[100001],sum[100001],in[100001],ans;
int main()
{
	ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
	cin >> t;
	while(t--)
	{
		cin >> n; ans=0;
		for(int i=1; i<=n; i++) cin >> w[i],in[i]=0,ans+=w[i];
		for(int i=0,a,b; i<n-1; i++)
		{
			cin >> a >> b;
			in[a]++; in[b]++;
		}
		vector<int> node;
		for(int i=1; i<=n; i++) if(in[i]>1)
		{
			for(int j=0; j<in[i]-1; j++) node.pb(w[i]);
		}
		sort(node.begin(),node.end());
		int len=node.size();
		for(int i=0; i<len; i++)
		{
			if(i) sum[i]=sum[i-1]+node[i];
			else sum[i]=node[i];
		}
		for(int i=1; i<=n-1; i++)
		{
			cout << ans+sum[len-1]-sum[len-i] << ' ';
		}
		cout << '\n';
	}
	return 0;
}