Pagini recente » Cod sursa (job #404491) | Cod sursa (job #1211043) | Cod sursa (job #1851814) | Cod sursa (job #1290787) | Cod sursa (job #2284566)
#include <bits/stdc++.h>
#define indice(i) (i & (-i))
using namespace std;
int n,AIB[16000];
void adaug(int i,int x)
{
int j;
for(j=i;j<=n;j+=indice(j))
{
AIB[j]+=x;
}
}
int suma(int i)
{
int j,s=0;
for(j=i;j>0;j-=indice(j))
{
s=s+AIB[j];
}
return s;
}
ifstream f("datorii.in");
ofstream g("datorii.out");
int i,k,cer,y,x;
int main()
{
f>>n>>k;
for(i=1;i<=n;i++)
{
f>>x;
adaug(i,x);
}
for(i=1;i<=k;i++)
{
f>>cer>>x>>y;
if(cer==0)adaug(x,-y);
else {g<<suma(y)-suma(x-1)<<'\n';}
}
return 0;
}