{$inline on}
program llx;
var bd,a,b,c,ks,js,pd,b1,b2,first,next:array[1..2000000]of longint;
ch:char;
bs,l,r,xh,i,j,n,m,k,o,p:longint;
procedure try(i:longint);
var j,k:longint;
begin
inc(xh);
ks[i]:=xh;
j:=first[i];
pd[i]:=1;
while j<>0 do
begin
if pd[bd[j]]=0 then
begin
pd[bd[j]]:=1;
try(bd[j]);
end;
j:=next[j];
end;
js[i]:=xh;
end;
procedure paint(i,l,r,ll,lr:longint);
var j,k:longint;
begin
if r<ll then exit;
if l>lr then exit;
if (l>=ll)and(r<=lr) then
begin
a[i]:=1-a[i];
exit;
end;
k:=(l+r)div 2;
if a[i]=1 then
begin
a[2*i]:=1-a[2*i];
a[2*i+1]:=1-a[2*i+1];
a[i]:=0;
end;
paint(i*2,l,k,ll,lr);
paint(i*2+1,k+1,r,ll,lr);
end;
function sum(i,l,r,ll,lr:longint):longint;
var j,k,ans1,ans2:longint;
begin
ans1:=0;
ans2:=0;
sum:=0;
if r<ll then exit;
if l>lr then exit;
if (l>=ll)and(r<=lr)and(a[i]=1) then
begin
sum:=r-l+1;
exit;
end;
k:=(l+r)div 2;
if (l=r) then exit;
if a[i]=1 then
begin
a[2*i]:=1-a[2*i];
a[2*i+1]:=1-a[2*i+1];
a[i]:=0;
end;
ans1:=sum(i*2,l,k,ll,lr);
ans2:=sum(i*2+1,k+1,r,ll,lr);
sum:=ans1+ans2;
end;
begin
readln(n);
for i:=1 to n-1 do
begin
readln(o,p);
inc(bs);
bd[bs]:=p;
k:=first[o];
first[o]:=bs;
next[bs]:=k;
inc(bs);
bd[bs]:=o;
k:=first[p];
first[p]:=bs;
next[bs]:=k;
end;
try(1);
readln(m);
for i:=1 to m do
begin
read(ch);
readln(o);
if ch='C' then
begin
paint(1,1,xh,ks[o],js[o]);
end
else writeln(sum(1,1,xh,ks[o],js[o]));
end;
close(input);
end.
0分……泪奔
求教神犇哪里写次了