#include<iostream>
using namespace std;
#include<cstdio>
#define INF 100001
long long int c[INF];
int n,m,a,b,x;
int lowbit(int k)
{
return k&(-k);
}
void add(int k,int num)
{
while(k<=n)
{
c[k]+=num;
k+=lowbit(k);/*给他自身加num的同时,也要给包含它的父亲加num*/
}
}
void input()
{
scanf("%d",&n);
int p;
for(int i=1;i<=n;++i)
{
scanf("%d",&p);
add(i,p);/*树状数组不用单独开辟空间存放原数组,在输入数据的时候,加到树中就行*/
}
}
long long int Sum(int k)/*给1--k区间求和,*/
{
long long int sum=0;
while(k)
{
sum+=c[k];/*从该节点开始加,再找他的孩子节点*/
k-=lowbit(k);
}
return sum;
}
int main()
{
input();
scanf("%d",&m);
while(m--)
{
scanf("%d",&x);
if(x==1)
{
scanf("%d%d",&a,&b);
add(a,b);
}
else {
scanf("%d%d",&a,&b);
printf("%lld\n",Sum(b)-Sum(a-1));/*这就是求任意区间和的方法*/
}
}
return 0;
}