#pragma GCC optimize("Ofast")
#pragma GCC target("avx,avx2,fma")
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll inf = 1e9+7;
vector <int> v[1000001];
ll dp[1000001][2];
ll vis[1000001];
ll l[1000001],r[1000001];
ll n;
void dfs (ll u)
{
vis[u]=1;
for (int i:v[u])
{
if (vis[i]==0)
{
dfs(i);
dp[u][0]+=max(dp[i][0]+abs(l[i]-l[u]),dp[i][1]+abs(r[i]-l[u]));
dp[u][1]+=max(dp[i][0]+abs(l[i]-r[u]),dp[i][1]+abs(r[i]-r[u]));
}
}
}
int main () {
ios_base::sync_with_stdio(0);
cin.tie(0);
ll t;
cin >> t;
while (t--)
{
cin >> n;
for (int i=1;i<=n;i++)
{
vis[i]=0;
v[i].clear();
cin >> l[i] >> r[i];
dp[i][0]=0;
dp[i][1]=0;
}
for (int i=1;i<n;i++)
{
ll x, y;
cin >> x >> y;
v[x].push_back(y);
v[y].push_back(x);
}
dfs(1);
cout << max(dp[1][0],dp[1][1]) << endl;
}
}
6. Zigzag Conversion | 1612B - Special Permutation |
1481. Least Number of Unique Integers after K Removals | 1035. Uncrossed Lines |
328. Odd Even Linked List | 1219. Path with Maximum Gold |
1268. Search Suggestions System | 841. Keys and Rooms |
152. Maximum Product Subarray | 337. House Robber III |
869. Reordered Power of 2 | 1593C - Save More Mice |
1217. Minimum Cost to Move Chips to The Same Position | 347. Top K Frequent Elements |
1503. Last Moment Before All Ants Fall Out of a Plank | 430. Flatten a Multilevel Doubly Linked List |
1290. Convert Binary Number in a Linked List to Integer | 1525. Number of Good Ways to Split a String |
72. Edit Distance | 563. Binary Tree Tilt |
1306. Jump Game III | 236. Lowest Common Ancestor of a Binary Tree |
790. Domino and Tromino Tiling | 878. Nth Magical Number |
2099. Find Subsequence of Length K With the Largest Sum | 1608A - Find Array |
416. Partition Equal Subset Sum | 1446. Consecutive Characters |
1618A - Polycarp and Sums of Subsequences | 1618B - Missing Bigram |