#include <bits/stdc++.h>
using namespace std;
#define ll long long int
#define ull unsigned long long int
#define ld long double
#define cout(var) cout<<var<<endl
#define endl '\n'
#define loop(a,b,c) for(ll i=a;i<=b;i+=c)
#define intarr(arr,n) ll arr[n];for(ll i=0;i<n;i++)cin>>arr[i]
#define inparr(arr,n) for(ll i=0;i<n;i++)cin>>arr[i]
#define inpvec(vec,n) for(ll i=0;i<n;i++){ll var;cin>>var;vec.push_back(var);}
#define pb push_back
#define fastio ios_base::sync_with_stdio(false);cin.tie(NULL);
#define mod 1000000007
#define newline cout<<endl
#define ump unordered_map<ll,ll>
#define vec vector<ll>
#define mkp make_pair
#define disp(var) cout<<var<<" "
ll bs=1357;
ll cnt=0;
ump f;
ll a[50005];
ll pvh[50005];
vector<pair<pair<ll,ll>,ll>> upd;
struct query
{
ll l,r,i,up;
};
query qu[100005];
ll ans[100005];
bool comp(query a,query b)
{
if(a.l/bs!=b.l/bs)
{
return a.l/bs<b.l/bs;
}
if(a.r/bs!=b.r/bs)
return a.r<b.r;
return a.up<b.up;
}
void add(ll pos)
{
ll ele=a[pos];
f[ele]++;
if(f[ele]==1)
cnt+=ele;
}
void remove(ll pos)
{
//cout<<a[pos]<<endl;
ll ele=a[pos];
f[ele]--;
if(f[ele]==0)
cnt-=ele;
}
void updatekaro(ll ct,ll left,ll right)
{
ll x=upd[ct].first.first;
ll oldvalue=a[x];
//cout<<x<<y<<oldvalue<<endl;
if(x>=left && x<=right)
{
f[oldvalue]--;
if(f[oldvalue]==0)
cnt-=oldvalue;
}
a[x]=upd[ct].first.second;
ll y=a[x];
if(x>=left && x<=right)
{
f[y]++;
if(f[y]==1)
cnt+=y;
}
}
void updatehatao(ll ct,ll left,ll right)
{
ll x=upd[ct].first.first;
ll oldvalue=a[x];
if(x>=left && x<=right)
{
f[oldvalue]--;
if(f[oldvalue]==0)
cnt-=oldvalue;
}
a[x]=upd[ct].second;
ll y=a[x];
if(x>=left && x<=right)
{
f[y]++;
if(f[y]==1)
cnt+=y;
}
}
void AcDegaYe()
{
ll n,q;
cin>>n;
for(ll i=0;i<n;i++)
{
cin>>a[i];
pvh[i]=a[i];
}
ll no;
ll updtillnow=0,x,y,in=0;
cin>>q;
for(ll i=0;i<q;i++)
{
char ch;
cin>>ch;
if(ch=='Q')
{
cin>>qu[in].l>>qu[in].r;
qu[in].l--;
qu[in].r--;
qu[in].i=in;
qu[in].up=updtillnow;
in++;
}
else
{
cin>>x>>y;
x--;
upd.pb(mkp(mkp(x,y),pvh[x]));
pvh[x]=y;
updtillnow++;
}
}
sort(qu,qu+in,comp);
ll ml=0,mr=-1,currenttime=0;
for(ll i=0;i<in;i++)
{
ll left=qu[i].l;
ll right=qu[i].r;
while(currenttime<qu[i].up)
{
updatekaro(currenttime,left,right);
currenttime++;
}
while(currenttime>qu[i].up)
{
updatehatao(currenttime,left,right);
currenttime--;
}
while(ml>left)
{
ml--;
add(ml);
}
while(mr<right)
{
mr++;
add(mr);
}
while(ml<left)
{
remove(ml);
ml++;
}
while(mr>right)
{
remove(mr);
mr--;
}
ans[qu[i].i]=cnt;
// for(ll i=0;i<n;i++)
// cout<<a[i]<<" ";
// cout<<endl;
}
for(ll i=0;i<in;i++)
{
cout(ans[i]);
}
}
int main()
{
fastio;
//ll t;
//cin>>t;
ll t=1;
while(t--)
{
AcDegaYe();
}
cerr << "\nTime elapsed: " << 1000 * clock() / CLOCKS_PER_SEC << "ms\n";
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7IAojZGVmaW5lIGxsIGxvbmcgbG9uZyBpbnQKI2RlZmluZSB1bGwgdW5zaWduZWQgbG9uZyBsb25nIGludAojZGVmaW5lIGxkIGxvbmcgZG91YmxlCiNkZWZpbmUgY291dCh2YXIpIGNvdXQ8PHZhcjw8ZW5kbAojZGVmaW5lIGVuZGwgJ1xuJwojZGVmaW5lIGxvb3AoYSxiLGMpIGZvcihsbCBpPWE7aTw9YjtpKz1jKQojZGVmaW5lIGludGFycihhcnIsbikgbGwgYXJyW25dO2ZvcihsbCBpPTA7aTxuO2krKyljaW4+PmFycltpXQojZGVmaW5lIGlucGFycihhcnIsbikgZm9yKGxsIGk9MDtpPG47aSsrKWNpbj4+YXJyW2ldCiNkZWZpbmUgaW5wdmVjKHZlYyxuKSBmb3IobGwgaT0wO2k8bjtpKyspe2xsIHZhcjtjaW4+PnZhcjt2ZWMucHVzaF9iYWNrKHZhcik7fQojZGVmaW5lIHBiIHB1c2hfYmFjawojZGVmaW5lIGZhc3RpbyBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTtjaW4udGllKE5VTEwpOwojZGVmaW5lIG1vZCAxMDAwMDAwMDA3CiNkZWZpbmUgbmV3bGluZSBjb3V0PDxlbmRsCiNkZWZpbmUgdW1wIHVub3JkZXJlZF9tYXA8bGwsbGw+CiNkZWZpbmUgdmVjIHZlY3RvcjxsbD4KI2RlZmluZSBta3AgbWFrZV9wYWlyCiNkZWZpbmUgZGlzcCh2YXIpIGNvdXQ8PHZhcjw8IiAiCmxsIGJzPTEzNTc7CmxsIGNudD0wOwp1bXAgZjsKbGwgYVs1MDAwNV07CmxsIHB2aFs1MDAwNV07CnZlY3RvcjxwYWlyPHBhaXI8bGwsbGw+LGxsPj4gdXBkOwpzdHJ1Y3QgcXVlcnkKewogICAgbGwgbCxyLGksdXA7Cn07CnF1ZXJ5IHF1WzEwMDAwNV07CmxsIGFuc1sxMDAwMDVdOwpib29sIGNvbXAocXVlcnkgYSxxdWVyeSBiKQp7CiAgICBpZihhLmwvYnMhPWIubC9icykKICAgIHsKICAgICAgICByZXR1cm4gYS5sL2JzPGIubC9iczsKICAgIH0KICAgIGlmKGEuci9icyE9Yi5yL2JzKQogICAgICAgIHJldHVybiBhLnI8Yi5yOwogICAgcmV0dXJuIGEudXA8Yi51cDsKfQp2b2lkIGFkZChsbCBwb3MpCnsKICAgIGxsIGVsZT1hW3Bvc107CiAgICBmW2VsZV0rKzsKICAgIGlmKGZbZWxlXT09MSkKICAgICAgICBjbnQrPWVsZTsKfQp2b2lkIHJlbW92ZShsbCBwb3MpCnsKICAgIC8vY291dDw8YVtwb3NdPDxlbmRsOwogICAgbGwgZWxlPWFbcG9zXTsKICAgIGZbZWxlXS0tOwogICAgaWYoZltlbGVdPT0wKQogICAgICAgIGNudC09ZWxlOwp9CnZvaWQgdXBkYXRla2FybyhsbCBjdCxsbCBsZWZ0LGxsIHJpZ2h0KQp7CiAgICBsbCB4PXVwZFtjdF0uZmlyc3QuZmlyc3Q7CiAgICBsbCBvbGR2YWx1ZT1hW3hdOwogICAgLy9jb3V0PDx4PDx5PDxvbGR2YWx1ZTw8ZW5kbDsKICAgIGlmKHg+PWxlZnQgJiYgeDw9cmlnaHQpCiAgICB7CiAgICAgICAgZltvbGR2YWx1ZV0tLTsKICAgICAgICBpZihmW29sZHZhbHVlXT09MCkKICAgICAgICAgICAgY250LT1vbGR2YWx1ZTsKICAgIH0KICAgIGFbeF09dXBkW2N0XS5maXJzdC5zZWNvbmQ7CiAgICBsbCB5PWFbeF07CiAgICBpZih4Pj1sZWZ0ICYmIHg8PXJpZ2h0KQogICAgewogICAgICAgIGZbeV0rKzsKICAgICAgICBpZihmW3ldPT0xKQogICAgICAgICAgICBjbnQrPXk7CiAgICB9Cn0Kdm9pZCB1cGRhdGVoYXRhbyhsbCBjdCxsbCBsZWZ0LGxsIHJpZ2h0KQp7CiAgICBsbCB4PXVwZFtjdF0uZmlyc3QuZmlyc3Q7CiAgICBsbCBvbGR2YWx1ZT1hW3hdOwogICAgaWYoeD49bGVmdCAmJiB4PD1yaWdodCkKICAgIHsKICAgICAgICBmW29sZHZhbHVlXS0tOwogICAgICAgIGlmKGZbb2xkdmFsdWVdPT0wKQogICAgICAgICAgICBjbnQtPW9sZHZhbHVlOwogICAgfQogICAgYVt4XT11cGRbY3RdLnNlY29uZDsKICAgIGxsIHk9YVt4XTsKICAgIGlmKHg+PWxlZnQgJiYgeDw9cmlnaHQpCiAgICB7CiAgICAgICAgZlt5XSsrOwogICAgICAgIGlmKGZbeV09PTEpCiAgICAgICAgICAgIGNudCs9eTsKICAgIH0KCn0Kdm9pZCBBY0RlZ2FZZSgpCnsKICAgIGxsIG4scTsKICAgIGNpbj4+bjsKICAgIGZvcihsbCBpPTA7aTxuO2krKykKICAgIHsKICAgICAgICBjaW4+PmFbaV07CiAgICAgICAgcHZoW2ldPWFbaV07CiAgICB9CiAgICBsbCBubzsKICAgIGxsIHVwZHRpbGxub3c9MCx4LHksaW49MDsKICAgIGNpbj4+cTsKICAgIGZvcihsbCBpPTA7aTxxO2krKykKICAgIHsKICAgICAgICBjaGFyIGNoOwogICAgICAgIGNpbj4+Y2g7CiAgICAgICAgaWYoY2g9PSdRJykKICAgICAgICB7CiAgICAgICAgICAgIGNpbj4+cXVbaW5dLmw+PnF1W2luXS5yOwogICAgICAgICAgICBxdVtpbl0ubC0tOwogICAgICAgICAgICBxdVtpbl0uci0tOwogICAgICAgICAgICBxdVtpbl0uaT1pbjsKICAgICAgICAgICAgcXVbaW5dLnVwPXVwZHRpbGxub3c7CiAgICAgICAgICAgIGluKys7CiAgICAgICAgfQogICAgICAgIGVsc2UKICAgICAgICB7CiAgICAgICAgICAgIGNpbj4+eD4+eTsKICAgICAgICAgICAgeC0tOwogICAgICAgICAgICB1cGQucGIobWtwKG1rcCh4LHkpLHB2aFt4XSkpOwogICAgICAgICAgICBwdmhbeF09eTsKICAgICAgICAgICAgdXBkdGlsbG5vdysrOwogICAgICAgIH0KICAgIH0KICAgIHNvcnQocXUscXUraW4sY29tcCk7CiAgICBsbCBtbD0wLG1yPS0xLGN1cnJlbnR0aW1lPTA7CiAgICBmb3IobGwgaT0wO2k8aW47aSsrKQogICAgewogICAgICAgIGxsIGxlZnQ9cXVbaV0ubDsKICAgICAgICBsbCByaWdodD1xdVtpXS5yOwogICAgICAgIHdoaWxlKGN1cnJlbnR0aW1lPHF1W2ldLnVwKQogICAgICAgIHsKICAgICAgICAgICAgdXBkYXRla2FybyhjdXJyZW50dGltZSxsZWZ0LHJpZ2h0KTsKICAgICAgICAgICAgY3VycmVudHRpbWUrKzsKICAgICAgICB9CiAgICAgICAgd2hpbGUoY3VycmVudHRpbWU+cXVbaV0udXApCiAgICAgICAgewogICAgICAgICAgICB1cGRhdGVoYXRhbyhjdXJyZW50dGltZSxsZWZ0LHJpZ2h0KTsKICAgICAgICAgICAgY3VycmVudHRpbWUtLTsKICAgICAgICB9CiAgICAgICAgd2hpbGUobWw+bGVmdCkKICAgICAgICB7CiAgICAgICAgICAgIG1sLS07CiAgICAgICAgICAgIGFkZChtbCk7CiAgICAgICAgfQogICAgICAgIHdoaWxlKG1yPHJpZ2h0KQogICAgICAgIHsKICAgICAgICAgICAgbXIrKzsKICAgICAgICAgICAgYWRkKG1yKTsKICAgICAgICB9CiAgICAgICAgd2hpbGUobWw8bGVmdCkKICAgICAgICB7CiAgICAgICAgICAgIHJlbW92ZShtbCk7CiAgICAgICAgICAgIG1sKys7CiAgICAgICAgfQogICAgICAgIHdoaWxlKG1yPnJpZ2h0KQogICAgICAgIHsKICAgICAgICAgICAgcmVtb3ZlKG1yKTsKICAgICAgICAgICAgbXItLTsKICAgICAgICB9CiAgICAgICAgYW5zW3F1W2ldLmldPWNudDsKICAgIC8vICAgICBmb3IobGwgaT0wO2k8bjtpKyspCiAgICAvLyAgICAgY291dDw8YVtpXTw8IiAiOwogICAgLy8gY291dDw8ZW5kbDsKICAgIH0KICAgIGZvcihsbCBpPTA7aTxpbjtpKyspCiAgICB7CiAgICAgICAgY291dChhbnNbaV0pOwogICAgfQp9CiAKaW50IG1haW4oKQp7ICAgCiAgICBmYXN0aW87CiAgICAvL2xsIHQ7CiAgICAvL2Npbj4+dDsKICAgIGxsIHQ9MTsKICAgIHdoaWxlKHQtLSkKICAgIHsKICAgICAgICBBY0RlZ2FZZSgpOwogICAgfQogICAgY2VyciA8PCAiXG5UaW1lIGVsYXBzZWQ6ICIgPDwgMTAwMCAqIGNsb2NrKCkgLyBDTE9DS1NfUEVSX1NFQyA8PCAibXNcbiI7CiAgICByZXR1cm4gMDsKfQ==