QTREE  Query on a tree
You are given a tree (an acyclic undirected connected graph) with N nodes, and edges numbered 1, 2, 3...N1.
We will ask you to perfrom some instructions of the following form:
 CHANGE i ti : change the cost of the ith edge to ti
or  QUERY a b : ask for the maximum edge cost on the path from node a to node b
Input
The first line of input contains an integer t, the number of test cases (t <= 20). t test cases follow.
For each test case:
 In the first line there is an integer N (N <= 10000),
 In the next N1 lines, the ith line describes the ith edge: a line with three integers a b c denotes an edge between a, b of cost c (c <= 1000000),
 The next lines contain instructions "CHANGE i ti" or "QUERY a b",
 The end of each test case is signified by the string "DONE".
There is one blank line between successive tests.
Output
For each "QUERY" operation, write one integer representing its result.
Example
Input: 1 3 1 2 1 2 3 2 QUERY 1 2 CHANGE 1 3 QUERY 1 2 DONE Output: 1 3
hide comments
princemishra:
20210216 17:31:17
Last edit: 20210311 15:22:43 

princemishra:
20210216 17:20:28
best place to study heavy light decompostion


whhsteven:
20200830 16:16:41
Not kidding. What's HLD? Please tell me... Last edit: 20200830 16:17:01 

mhasan01:
20200709 23:14:38
Nice problem to learn HLD :) 

pareksha:
20200501 10:04:49
If you are getting RE SIGSEGV, use void return type with functions not returning anything. 

an09mous:
20200322 19:46:14
There's no need to find LCA separately if you are using HLD. 

sangmai:
20200218 05:18:44
I add ios_base::sync_with_stdio(false);cin.tie(NULL); and TLE becomes AC 

fatnot:
20200106 11:40:24
getting tle on cpp is that ok


zer0_h6cks:
20191205 10:34:33
See this as well.


zufius:
20191128 09:41:34
if you get TLE, just optimize function max, dfs & hld decomposition like this guy : https://ideone.com/Ykg63S

Added by:  ThanhVy Hua 
Date:  20050608 
Time limit:  1s 
Source limit:  15000B 
Memory limit:  1536MB 
Cluster:  Cube (Intel G860) 
Languages:  ADA95 ASM32 BASH BF C CSHARP CPP CLPS LISP sbcl LISP clisp D FORTRAN HASK ICON ICK JAVA LUA NEM NICE OCAML PASGPC PASFPC PERL PHP PIKE PRLGswi PYTHON RUBY SCM qobi SCM guile ST TEXT WHITESPACE 