#include<bits/stdc++.h>

using namespace std;

int main(){
	int t;
	cin>>t;
	while(t--){
		long long int n;
		cin>>n;
		long long int arr[n+1];
		priority_queue<pair<long long int,long long int> > q;
		long long int sum=0;
		for(int i=1;i<=n;i++){
			cin>>arr[i];
			q.push({arr[i],i});
			sum+=arr[i];
		}
		vector<vector<long long int> > adj(n+1);
		for(int i=0;i<n-1;i++){
			long long int x,y;
			cin>>x>>y;
			adj[x].push_back(y);
			adj[y].push_back(x);
		}
		vector<long long int> ans(n);
		ans[0]=sum;
		long long int k=1;
		while(q.size()){
			long long int x=q.top().first;
			long long int y=q.top().second;
			if(adj[y].size()>1){
				sum+=x;
				adj[y].erase(adj[y].begin());
				ans[k]=sum;
				k++;
			}
			else{
				q.pop();
			}
			
		}
		for(int i=0;i<n-1;i++){
			cout<<ans[i]<<" ";
		}
		cout<<endl;
		
		
		
	}
}