Pagini recente » Cod sursa (job #104882) | Cod sursa (job #858867) | Cod sursa (job #3139175) | Cod sursa (job #2853799) | Cod sursa (job #989356)
Cod sursa(job #989356)
#include <stdio.h>
#define nmax 15001
FILE *f,*g;
long a[nmax],n,m;
long suma(long i)
{
long j=0;
while (i>0)
{
j+=a[i];
i-=i&(i^(i-1));
}
return j;
}
void add(long i,long x)
{
while (i<=n)
{
a[i]+=x;
i+=i&(i^(i-1));
}
}
int main()
{
long i,x,y,z;
f=fopen("datorii.in","rt");
g=fopen("datorii.out","wt");
fscanf(f,"%ld %ld",&n,&m);
for (i=1;i<=n;i++)
{
fscanf(f,"%ld",&x);
add(i,x);
}
for (i=1;i<=m;i++)
{
fscanf(f,"%ld %ld %ld",&x,&y,&z);
if (x==0)
{
add(y,-z);
}
else
{
fprintf(g,"%ld\n",suma(z)-suma(y-1));
}
}
fclose(f);
fclose(g);
return 0;
}