Cod sursa(job #643208)
| Utilizator | Data | 3 decembrie 2011 10:34:13 | |
|---|---|---|---|
| Problema | Datorii | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.62 kb |
#include<cstdio>
#define N 15001
int n,x,y,z,i,a[N],c[N],m,s,t;
int main()
{freopen("datorii.in","r",stdin);
freopen("datorii.out","w",stdout);
scanf("%d%d",&n,&m);
for(i=1;i<=n;i++)
{scanf("%d",&a[i]);
a[i]+=a[i-1],j=i-(i&(-i)),c[i]=a[i]-a[j];}
while(m--)
{scanf("%d%d%d",&x,&y,&z);
if(!x)
while(y<=n)
c[y]-=z,y+=(y&(-y));
else
{s=t=0;
while(z)
s+=c[z],z-=(z&(-z));
y--;
while(y)
t+=c[y],y-=(y&(-y));
printf("%d\n",s-t);}}
return 0;}
