QTREE4  Query on a tree IV
You are given a tree (an acyclic undirected connected graph) with N nodes, and nodes numbered 1,2,3...,N. Each edge has an integer value assigned to it(note that the value can be negative). Each node has a color, white or black. We define dist(a, b) as the sum of the value of the edges on the path from node a to node b.
All the nodes are white initially.
We will ask you to perfrom some instructions of the following form:
 C a : change the color of node a.(from black to white or from white to black)
 A : ask for the maximum dist(a, b), both of node a and node b must be white(a can be equal to b). Obviously, as long as there is a white node, the result will alway be non negative.
Input
 In the first line there is an integer N (N <= 100000)
 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 value c (1000 <= c <= 1000)
 In the next line, there is an integer Q denotes the number of instructions (Q <= 100000)
 In the next Q lines, each line contains an instruction "C a" or "A"
Output
For each "A" operation, write one integer representing its result. If there is no white node in the tree, you should write "They have disappeared.".
Example
Input: 3 1 2 1 1 3 1 7 A C 1 A C 2 A C 3 A Output: 2 2 0 They have disappeared.
Some new test data cases were added on Apr.29.2008, all the solutions have been rejudged.
hide comments
peehs_moorhsum:
20161224 05:12:50
Why is O(Q*log^2n) TLE? 

Hibuddy_deathstar:
20160331 21:01:34
getting TLE :( 

qzqzgfy:
20160301 04:16:04
wowowow 

chenwenwen:
20140729 13:10:19
Solve it finally. Debugging is so hard. 

chenwenwen:
20140729 04:51:23
tree split 

Nitin jaglan:
20140624 13:06:46
what du 

hahaha:
20140203 15:42:44
how to do 
Added by:  Qu Jun 
Date:  20080425 
Time limit:  0.100s0.646s 
Source limit:  50000B 
Memory limit:  1536MB 
Cluster:  Cube (Intel G860) 
Languages:  All except: C99 ERL JSRHINO NODEJS PERL6 VB.NET 
Resource:  william 