#include#include #include #define maxn 100010#define maxm 200020#define maxx 10010using namespace std;int n,m,a[maxn],num;struct node{ int lc,rc; int l,r; int sum;}tree[maxm];void build(int ll,int rr){ int cur=++num; tree[cur].l=ll;tree[cur].r=rr; if(ll!=rr-1) { tree[cur].lc=num+1; build(ll,(ll+rr)/2); tree[cur].rc=num+1; build((ll+rr)/2,rr); tree[cur].sum=tree[tree[cur].lc].sum+tree[tree[cur].rc].sum; } else tree[cur].sum=a[ll];}void change(int k,int x,int p){ if(tree[k].l==tree[k].r-1)tree[k].sum+=p; else { if(x<(tree[k].l+tree[k].r)/2)change(tree[k].lc,x,p); if(x>=(tree[k].l+tree[k].r)/2)change(tree[k].rc,x,p); tree[k].sum=tree[tree[k].lc].sum+tree[tree[k].rc].sum; }}int find(int k,int ll,int rr){ if(ll<=tree[k].l&&rr>=tree[k].r)return tree[k].sum; int ans=0; if(ll<(tree[k].l+tree[k].r)/2)ans+=find(tree[k].lc,ll,rr); if(rr>(tree[k].l+tree[k].r)/2)ans+=find(tree[k].rc,ll,rr); return ans;}int main(){ cin>>n; int i,j,x,y,z; for(i=1;i<=n;i++) cin>>a[i]; build(1,n+1); cin>>m; for(i=1;i<=m;i++) { cin>>x>>y>>z; if(x==1)change(1,y,z); if(x==2)cout< <