Cod sursa(job #135020)
| Utilizator | Data | 12 februarie 2008 20:13:33 | |
|---|---|---|---|
| Problema | Datorii | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.52 kb |
#include<stdio.h>
long c[15010];
int main()
{ freopen("datorii.in","r",stdin);
freopen("datorii.out","w",stdout);
long n,m,x,y,op,i,j;
scanf("%ld%ld",&n,&m);
for(i=1;i<=n;i++)
{ scanf("%ld",&x);
j=i;
while(j<=n)
{ c[j]+=x;
j+=(j^(j-1))&j;
}
}
for(i=1;i<=m;i++)
{ scanf("%ld%ld%ld",&op,&x,&y);
if(op)
printf("%ld\n",c[y]-c[x-1]);
else { j=x;
while(j<=n)
{ c[j]-=y;
j+=(j^(j-1))&j;
}
}
}
printf("\n");
return 0;
}