a= [ ]
mn= [ int ( 0 ) for i in range ( 264144 ) ]
sum = [ int ( 0 ) for i in range ( 264144 ) ]
def query_sum( l, r, i, x, y) :
if ( x> r or y< l or l> r) :return int ( 0 )
if ( x<= l and y>= r) :return int ( sum [ i] )
mid = int ( ( l+r) /2 )
left = int ( 2 *i+1 )
right = int ( left+1 )
return query_sum( l, mid, left, x, y) +query_sum( mid+1 , r, right, x, y)
def query_min( l, r, i, x, y) :
if ( x> r or y< l or l> r) :return int ( 1000000000 )
if ( x<= l and y>= r) :return int ( mn[ i] )
mid = int ( ( l+r) /2 )
left = int ( 2 *i+1 )
right = int ( left+1 )
return min ( query_min( l, mid, left, x, y) , query_min( mid+1 , r, right, x, y) )
def update( l, r, i, p, v) :
if ( p< l or p> r or l> r) :return int ( 0 )
if ( l== r) :
sum [ i] += int ( v)
mn[ i] = int ( sum [ i] )
return int ( 0 )
mid = int ( ( l+r) /2 )
left = int ( 2 *i+1 )
right = int ( left+1 )
update( l, mid, left, p, v)
update( mid+1 , r, right, p, v)
sum [ i] = int ( sum [ left] +sum [ right] )
mn[ i] = int ( min ( mn[ left] +mn[ right] ) )
return 0
def buildtree( l, r, i) :
if ( l> r) :return 0
if ( l== r) :
mn[ i] = int ( a[ l] )
sum [ i] = int ( a[ l] )
return 0
mid = ( int ) ( ( l+r) /2 )
left = int ( 2 *i+1 )
right = int ( left+1 )
buildtree( l, mid, left)
buildtree( mid+1 , r, right)
sum [ i] = int ( sum [ left] +sum [ right] )
mn[ i] = int ( min ( mn[ left] , mn[ right] ) )
return 0
n= input ( )
a= raw_input ( ) .split ( )
for i in range ( n) :
a[ i] = eval ( ( a[ i] ) )
buildtree( 0 , n-1 , 0 )
q= input ( )
while ( q) :
s, x, y= raw_input ( ) .split ( )
x= eval ( x)
y= eval ( y)
if ( s[ 0 ] == 'C' ) :print ( query_sum( 0 , n-1 , 0 , x, y) -query_min( 0 , n-1 , 0 , x, y) )
elif ( s[ 0 ] == 'G' ) :w= update( 0 , n-1 , 0 , y, x)
else :w= update( 0 , n-1 , 0 , y, int ( -x) )
q-= 1
YT1bXQptbj1baW50KDApIGZvciBpIGluIHJhbmdlKDI2NDE0NCldCnN1bT1baW50KDApIGZvciBpIGluIHJhbmdlKDI2NDE0NCldCgoKZGVmIHF1ZXJ5X3N1bShsLHIsaSx4LHkpOgoJaWYgKHg+ciBvciB5PGwgb3IgbD5yKTpyZXR1cm4gaW50KDApCglpZiAoeDw9bCBhbmQgeT49cik6cmV0dXJuIGludChzdW1baV0pCgltaWQgPSBpbnQoKGwrcikvMikKCWxlZnQgPSBpbnQoMippKzEpCglyaWdodCA9IGludChsZWZ0KzEpCglyZXR1cm4gcXVlcnlfc3VtKGwsbWlkLGxlZnQseCx5KStxdWVyeV9zdW0obWlkKzEscixyaWdodCx4LHkpCgkKZGVmIHF1ZXJ5X21pbihsLHIsaSx4LHkpOgoJaWYgKHg+ciBvciB5PGwgb3IgbD5yKTpyZXR1cm4gaW50KDEwMDAwMDAwMDApCglpZiAoeDw9bCBhbmQgeT49cik6cmV0dXJuIGludChtbltpXSkKCW1pZCA9IGludCgobCtyKS8yKQoJbGVmdCA9IGludCgyKmkrMSkKCXJpZ2h0ID0gaW50KGxlZnQrMSkKCXJldHVybiBtaW4ocXVlcnlfbWluKGwsbWlkLGxlZnQseCx5KSxxdWVyeV9taW4obWlkKzEscixyaWdodCx4LHkpKQoJCmRlZiB1cGRhdGUobCxyLGkscCx2KToKCWlmIChwPGwgb3IgcD5yIG9yIGw+cik6cmV0dXJuIGludCgwKQoJaWYgKGw9PXIpOgoJCXN1bVtpXSs9aW50KHYpCgkJbW5baV09aW50KHN1bVtpXSkKCQlyZXR1cm4gaW50KDApCgltaWQgPSBpbnQoKGwrcikvMikKCWxlZnQgPSBpbnQoMippKzEpCglyaWdodCA9IGludChsZWZ0KzEpCgl1cGRhdGUobCxtaWQsbGVmdCxwLHYpCgl1cGRhdGUobWlkKzEscixyaWdodCxwLHYpCglzdW1baV09aW50KHN1bVtsZWZ0XStzdW1bcmlnaHRdKQoJbW5baV09aW50KG1pbihtbltsZWZ0XSttbltyaWdodF0pKQoJcmV0dXJuIDAKCmRlZiBidWlsZHRyZWUobCxyLGkpOgoJaWYgKGw+cik6cmV0dXJuIDAKCWlmIChsPT1yKToKCQltbltpXT1pbnQoYVtsXSkKCQlzdW1baV09aW50KGFbbF0pCgkJcmV0dXJuIDAKCW1pZCA9IChpbnQpKChsK3IpLzIpCglsZWZ0ID0gaW50KDIqaSsxKQoJcmlnaHQgPSBpbnQobGVmdCsxKQoJYnVpbGR0cmVlKGwsbWlkLGxlZnQpCglidWlsZHRyZWUobWlkKzEscixyaWdodCkKCXN1bVtpXT1pbnQoc3VtW2xlZnRdK3N1bVtyaWdodF0pCgltbltpXT1pbnQobWluKG1uW2xlZnRdLG1uW3JpZ2h0XSkpCglyZXR1cm4gMAoKbj1pbnB1dCgpCmE9cmF3X2lucHV0KCkuc3BsaXQoKQpmb3IgaSBpbiByYW5nZShuKToKCWFbaV09ZXZhbCgoYVtpXSkpCmJ1aWxkdHJlZSgwLG4tMSwwKQpxPWlucHV0KCkKd2hpbGUgKHEpOgoJcyx4LHk9cmF3X2lucHV0KCkuc3BsaXQoKQoJeD1ldmFsKHgpCgl5PWV2YWwoeSkKCWlmIChzWzBdPT0nQycpOnByaW50KHF1ZXJ5X3N1bSgwLG4tMSwwLHgseSktcXVlcnlfbWluKDAsbi0xLDAseCx5KSkKCWVsaWYgKHNbMF09PSdHJyk6dz11cGRhdGUoMCxuLTEsMCx5LHgpCgllbHNlOnc9dXBkYXRlKDAsbi0xLDAseSxpbnQoLXgpKQoJcS09MQo=