Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # include <bits/stdc++.h>
- # define fi first
- # define se second
- # define mp make_pair
- # define INF ll(1e9)
- using namespace std;
- typedef long long ll;
- ll t[555555],n,k;
- ll sum(ll v,ll tl,ll tr,ll l,ll r){
- if(l>r){
- return 0;
- }
- if(l==tl&&r==tr){
- return t[v];
- }
- ll tm=(tl+tr)/2;
- return sum(v*2,tl,tm,l,min(r,tm))+sum(v*2+1,tm+1,tr,max(l,tm+1),r);
- }
- void upd(ll v,ll tl,ll tr,ll pos,ll val){
- if(tl==tr){
- t[v]=val;
- return;
- }
- ll tm=(tl+tr)/2;
- if(pos<=tm){
- upd(v*2,tl,tm,pos,val);
- }
- else{
- upd(v*2+1,tm+1,tr,pos,val);
- }
- t[v]=t[v*2]+t[v*2+1];
- }
- int main(){
- freopen("sum.in","r",stdin);
- freopen("sum.out","w",stdout);
- cin>>n>>k;
- while(k--){
- char t;
- ll l,r;
- cin>>t>>l>>r;
- if(t=='A'){
- upd(1,1,n,l,r);
- }
- else{
- cout<<sum(1,1,n,l,r)<<"\n";
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement