Pagini recente » Cod sursa (job #3287555) | Cod sursa (job #1330148) | Cod sursa (job #2848776) | Cod sursa (job #2641551) | Cod sursa (job #13688)
Cod sursa(job #13688)
#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));
}
}
void read()
{
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));
}
}
}
int main()
{
long i,j;
read();
fclose(f);
fclose(g);
return 0;
}