Cod sursa(job #643208)

Utilizator BlaugranasEnal Gemaledin Blaugranas 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;}