Pagini recente » Cod sursa (job #2569711) | Cod sursa (job #1228101) | Cod sursa (job #3185259) | Cod sursa (job #2402621) | Cod sursa (job #1139499)
#include <cstdio>
#define zero(x) (x&(-x))
using namespace std;
int a[15001], s[15001], n;
void update(int poz, int val)
{
for(int i=poz; i<=n; i+=zero(i)) s[i]+=val;
}
int query(int poz)
{
int i, r=0;
for(i=poz; i>=1; i-=zero(i)) r+=s[i];
return r;
}
int main()
{
int m, x, y, z, i, j;
freopen("datorii.in","r",stdin);
freopen("datorii.out","w",stdout);
scanf("%d%d",&n,&m); s[0]=0;
for (i=1; i<=n; i++) {scanf("%d",&a[i]); update(i,a[i]);}
for (i=1; i<=m; i++)
{
scanf("%d%d%d",&z,&x,&y);
if (z==0) update(x,-y);
else printf("%d\n",query(y)-query(x-1));
}
fclose(stdin);
fclose(stdout);
return 0;
}