#include <stdio.h>
#include <stdlib.h>
const double eps=1e-11;
typedef long long ll;
typedef long long int lli;
typedef unsigned long long ull;
typedef long double ld;
#define MAX 1000000
void scan_int(int *n){
int tmp=0;
char ch;
int len
=fread(&ch
,sizeof(char),1,stdin
); while((ch
< '0' || ch
> '9') && len
>0 ) len
=fread(&ch
,sizeof(char),1, stdin
); while( ch >= '0' && ch <= '9' && len>0 ){
tmp = (tmp<<3)+(tmp<<1) + ch-'0';
len
=fread(&ch
,sizeof(char),1, stdin
); }
*n=tmp;
}
int main()
{
int n,q;
lli *a;
a
=(lli
*)malloc(MAX
*sizeof(lli
)); long long cng[50000];
long long loc[50000];
int i=0;
char ch;
int c,d,tmp2;
a[i]=tmp2; i++;
while(i<n){
scan_int(&tmp2);
a[i]=tmp2+a[i-1];
i++;
}
lli sum,idx=0;
while(q--){
ch='@';
sum=0;
while(ch
!='S'&&ch
!='T'&&ch
!='G') fread(&ch
,sizeof(char),1,stdin
); scan_int(&c); scan_int(&d);
if(ch=='S'){
if(c==0) sum=a[d];
else sum=a[d]-a[c-1];
for(i=0;i<idx;i++) if(loc[i]>=c && loc[i]<=d) sum+=cng[i];
}else if(ch=='G'){
cng[idx]=d;
loc[idx++]=c;
}else{
cng[idx]=-d;
loc[idx++]=c;
}
}
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KIApjb25zdCBkb3VibGUgZXBzPTFlLTExOwp0eXBlZGVmIGxvbmcgbG9uZyBsbDsKdHlwZWRlZiBsb25nIGxvbmcgaW50IGxsaTsKdHlwZWRlZiB1bnNpZ25lZCBsb25nIGxvbmcgdWxsOwp0eXBlZGVmIGxvbmcgZG91YmxlIGxkOwojZGVmaW5lIE1BWCAxMDAwMDAwCiAKdm9pZCBzY2FuX2ludChpbnQgKm4pewogICAgaW50IHRtcD0wOwogICAgY2hhciBjaDsKICAgIGludCBsZW49ZnJlYWQoJmNoLHNpemVvZihjaGFyKSwxLHN0ZGluKTsKICAgIHdoaWxlKChjaCA8ICcwJyB8fCBjaCA+ICc5JykgJiYgbGVuPjAgKSBsZW49ZnJlYWQoJmNoLHNpemVvZihjaGFyKSwxLCBzdGRpbik7CiAgICB3aGlsZSggIGNoID49ICcwJyAmJiBjaCA8PSAnOScgJiYgbGVuPjAgKXsKICAgICAgICAgICAgdG1wID0gKHRtcDw8MykrKHRtcDw8MSkgKyBjaC0nMCc7CiAgICAgICAgICAgIGxlbj1mcmVhZCgmY2gsc2l6ZW9mKGNoYXIpLDEsIHN0ZGluKTsKICAgICAgICAgICAgfQogICAgICAgICAgICpuPXRtcDsKfQogCmludCBtYWluKCkKewogICAgaW50IG4scTsKICAgIGxsaSAqYTsKICAgIGE9KGxsaSopbWFsbG9jKE1BWCpzaXplb2YobGxpKSk7CiAgICBsb25nIGxvbmcgY25nWzUwMDAwXTsKICAgIGxvbmcgbG9uZyBsb2NbNTAwMDBdOwogICAgZnNjYW5mKHN0ZGluLCIlZCIsJm4pOwogICAgZnNjYW5mKHN0ZGluLCIlZCIsJnEpOwogICAgaW50IGk9MDsKICAgIGNoYXIgY2g7CiAgICBpbnQgYyxkLHRtcDI7CiAgICBmc2NhbmYoc3RkaW4sIiVkIiwmdG1wMik7CiAgICBhW2ldPXRtcDI7IGkrKzsKIAogICAgd2hpbGUoaTxuKXsKICAgICAgICBzY2FuX2ludCgmdG1wMik7CiAgICAgICAgYVtpXT10bXAyK2FbaS0xXTsKICAgICAgICBpKys7CiAgICB9CiAgICBsbGkgc3VtLGlkeD0wOwogICAgd2hpbGUocS0tKXsKICAgICAgICBjaD0nQCc7CiAgICAgICAgc3VtPTA7CiAgICAgICAgd2hpbGUoY2ghPSdTJyYmY2ghPSdUJyYmY2ghPSdHJykgZnJlYWQoJmNoLHNpemVvZihjaGFyKSwxLHN0ZGluKTsKICAgICAgICBzY2FuX2ludCgmYyk7IHNjYW5faW50KCZkKTsKICAgICAgICBpZihjaD09J1MnKXsKICAgICAgICAgICAgaWYoYz09MCkgc3VtPWFbZF07CiAgICAgICAgICAgIGVsc2Ugc3VtPWFbZF0tYVtjLTFdOwogICAgICAgICAgICBmb3IoaT0wO2k8aWR4O2krKykgaWYobG9jW2ldPj1jICYmIGxvY1tpXTw9ZCkgc3VtKz1jbmdbaV07CiAgICAgICAgICAgIGZwcmludGYoc3Rkb3V0LCIlbGxkXG4iLHN1bSk7CiAgICAgICAgfWVsc2UgaWYoY2g9PSdHJyl7CiAgICAgICAgICAgIGNuZ1tpZHhdPWQ7CiAgICAgICAgICAgIGxvY1tpZHgrK109YzsKICAgICAgICB9ZWxzZXsKICAgICAgICAgICAgY25nW2lkeF09LWQ7CiAgICAgICAgICAgIGxvY1tpZHgrK109YzsKICAgICAgICB9CiAgICB9CiAKICAgIHJldHVybiAwOwp9