Pagini recente » Cod sursa (job #1425732) | Cod sursa (job #1550990) | Cod sursa (job #1391977) | Monitorul de evaluare | Cod sursa (job #3309578)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("datorii.in");
ofstream fout("datorii.out");
const int NMAX=16*1e3;
int v[NMAX],aib[NMAX];
int n,q;
void update(int poz,int val){for(int i=poz;i<=n;i+=(i&(-i)))aib[i]+=val;}
int compute(int poz){int ans=0;for(int i=poz;i>0;i-=i&(-i))ans+=aib[i];return ans;}
int sum(int st,int dr){return compute(dr)-compute(st-1);}
int main()
{
fin>>n>>q;
for(int i=1;i<=n;i++)
{
fin>>v[i];
update(i,v[i]);
}
while ((q--))
{
int op,a,b;
fin>>op>>a>>b;
if(!op)update(a,-b); else fout<<sum(a,b)<<'\n';
}
}