Solution
1651-Range_Update_Queries.cpp
1#include<bits/stdc++.h>
2using namespace std;
3#define int long long
4constexpr int N=2e5+5;
5int ft[N];
6int sum(int x){
7 int res=0;
8 for(;x>0;x-=(x&-x)) res+=ft[x];
9 return res;
10}
11void upd(int x,int v){ for(;x<N;x+=(x&-x)) ft[x]+=v; }
12signed main(){
13 ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
14 int n,q; cin>>n>>q;
15 int x[n]; for(int i=1;i<=n;++i){
16 cin>>x[i];
17 upd(i,x[i]);
18 upd(i+1,-x[i]);
19 }
20 while(q--){
21 int t; cin>>t;
22 if(t==1){
23 int a,b,u; cin>>a>>b>>u;
24 upd(a,u);
25 upd(b+1,-u);
26 }else{
27 int k; cin>>k;
28 cout<<sum(k)<<'\n';
29 }
30 }
31 return 0;
32}Editorial not yet generated for this problem. Run the editorial generation script to add hints and detailed explanations.