1 #include <iostream>
2 #include <cstdio>
3 using namespace std;
4
5 const int N=1e5+5;
6 int n,m;
7 int sum[N<<2];
8
9 void Update(int rt){
10 sum[rt]=sum[rt<<1]+sum[rt<<1|1];
11 }
12
13 void Build(int l,int r,int rt){
14 if(l==r) {scanf("%d",&sum[rt]);return;}
15 int mid=(l+r)>>1;
16 Build(l,mid,rt<<1);
17 Build(mid+1,r,rt<<1|1);
18 Update(rt); //不要忘记往上更新
19 }
20
21 void Add(int l,int r,int rt,int p,int v){
22 if(l==r) {sum[rt]+=v;return;}
23 int mid=(l+r)>>1;
24 if(p<=mid) Add(l,mid,rt<<1,p,v);
25 else Add(mid+1,r,rt<<1|1,p,v);
26 Update(rt); //不要往上更新
27 }
28
29 int query(int l,int r,int rt,int L,int R){
30 if(L<=l&&R>=r) return sum[rt];
31 int mid=(l+r)>>1;
32 int sum=0; //递归
33 if(L<=mid) sum+=query(l,mid,rt<<1,L,R);
34 if(R>mid) sum+=query(mid+1,r,rt<<1|1,L,R);
35 return sum;
36 }
37
38 int main()
39 {
40 scanf("%d",&n);
41 Build(1,n,1);
42 scanf("%d",&m);
43 while(m--){
44 int a,b,c;
45 scanf("%d%d%d",&a,&b,&c);
46 if(a==1) Add(1,n,1,b,c);
47 else if(a==2) printf("%d\n",query(1,n,1,b,c));
48 }
49 return 0;
50 }