Cod sursa(job #1734265)

Utilizator mIllIbytemIllI byte mIllIbyte Data 26 iulie 2016 22:09:33
Problema Datorii Scor 0
Compilator c Status done
Runda Arhiva de probleme Marime 0.49 kb
#include<stdio.h>
#include<math.h>
a[15002],b[123],n,m,k,i,p,q,t,v,s,rad;
main(){freopen("datorii.in","r",stdin);freopen("datorii.out","w",stdout);
scanf("%d %d",&n,&m);rad=sqrt(n);
for(i=1;i<=n;i++){scanf("%d",a+i);b[i/rad]+=a[i];}
for(;m--;){
 scanf("%d",&k);
 if(!k){
  scanf("%d %d",&t,&v);
  a[t]-=v;b[t/rad]-=v;
 }
 else{scanf("%d %d",&p,&q);s=0;
  for(i=(p-1)/rad+1;i<q/rad;i++)s+=b[i];
  for(i=p;i<((p-1)/rad+1)*rad;i++)s+=a[i];
  for(i=q/rad*rad;i<=q;i++)s+=a[i];
  printf("%d\n",s);
 }
}
}