题目:
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<queue>
#include<stack>
#include<string>
#include<map>
#include<sstream>
#include<vector>
#include<ctime>
#include<list>
#define int long long
using namespace std;
int a[1000005];
int c[1000005];
int n,q;
int lowbit(int x)
{
return x&(-x);
}
int change(int x,int k)
{
while(x<=n)
{
c[x]+=k;
x+=lowbit(x);
}
}
int sum(int x)
{
int ans=0;
while(x>0)
{
ans+=c[x];
x-=lowbit(x);
}
return ans;
}
signed main()
{
cin>>n>>q;
for(int i=1;i<=n;i++)
{
scanf("%lld",&a[i]);
change(i,a[i]);
}
while(q--)
{
int k,x,y;
scanf("%lld %lld %lld",&k,&x,&y);
if(k==1)
{
change(x,y);
}
else
{
printf("%lld\n",sum(y)-sum(x-1));
}
}
return 0;
}