General
 
 
# Author Problem Lang Verdict Time Memory Sent Judged  
151164941 Practice:
divyummm
1528A - 46 C++17 (GCC 7-32) Memory limit exceeded on test 1 234 ms 262144 KB 2022-03-27 19:32:19 2022-03-27 19:32:19
→ Source
/******************************************************************************

                              Online C++ Compiler.
               Code, Compile, Run and Debug C++ program online.
Write your code in this editor and press "Run" button to compile and execute it.

*******************************************************************************/

#include <bits/stdc++.h>

using namespace std;

vector<int> adj[100005];
int A[100005][2];
long long dp1[100005];
long long dp2[100005];
void dfs(int i , int p) {
    dp1[i]=dp2[i]=0;
    for(auto n:adj[i]) {
        if(n==p) continue;
        dfs(n,i);
        
            dp1[i]+=max(dp1[n]+abs(A[i][0]-A[n][0]),dp2[n]+abs(A[i][0]-A[n][1]));
            dp2[i]+=max(dp1[n]+abs(A[i][1]-A[n][0]),dp2[n]+abs(A[i][1]-A[n][1]));

            
            
        
    }
    
     
}
int main()
{   int t;
cin>>t;
while(t--) {
    int n;
    cin>>n;
    
    
    for(int i =0;i<n;i++) {
        
        cin>>A[i+1][0]>>A[i+1][1];
    }
    for(int i =0;i<n-1;i++) {
        int u,v;
        cin>>u>>v;
        adj[u].push_back(v);
        adj[v].push_back(u);
    }
    dfs(1,-1);
    cout<<max(dp1[1],dp2[1])<<endl;
    
}
    

    return 0;
}
?
Time: ? ms, memory: ? KB
Verdict: ?
Input
?
Participant's output
?
Jury's answer
?
Checker comment
?
Diagnostics
?
Click to see test details