Pagini recente » Cod sursa (job #2522823) | Cod sursa (job #2232834) | Cod sursa (job #528240) | Cod sursa (job #2943520) | Cod sursa (job #114521)
Cod sursa(job #114521)
#include <stdio.h>
#include <string.h>
#define N 15010
int main ()
{FILE *f,*ff;
f=fopen("datorii.in","r");
ff=fopen("datorii.out","w");
long n,m,i,j,x,p,q,s1,s2,aux1,aux2;
long a[N],b[N];
fscanf(f,"%ld %ld",&n,&m);
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
for (i=1;i<=n;i++)
{fscanf(f,"%ld",&x);
a[i]=a[i-1]+x;
}
for (i=1;i<=n;i++)
{b[i]=a[i]-a[i&(i-1)];
}
for (i=1;i<=m;i++)
{fscanf(f,"%ld %ld %ld",&x,&p,&q);
if(x==1)
{p--;
for (s1=0;p>0;p=p&(p-1))
{s1+=b[p];}
for (s2=0;q>0;q=q&(q-1))
{s2+=b[q];}
fprintf(ff,"%ld\n",s2-s1);
}
else
{for (j=p;j<=n;j+=j-(j&(j-1)))
{b[j]-=q;
}
}
}
fclose(f);
fclose(ff);
return 0;
}