Pagini recente » Cod sursa (job #1056969) | Cod sursa (job #1863600) | Cod sursa (job #1116860) | Cod sursa (job #1646185) | Cod sursa (job #329141)
Cod sursa(job #329141)
#include<stdio.h>
#define zero(poz) ((poz^(poz-1))&poz)
#define dim 15001
using namespace std;
int a[dim],poz,val,n;
void update(int poz, int val)
{
while(poz <= n)
{ a[poz] -= val;
poz += zero(poz);
}
}
int query(int poz)
{ int s = 0;
while(poz > 0)
{ s += a[poz];
poz -= zero(poz);
}
return s;
}
int main()
{ int i,x,y,nr,m;
FILE *f = fopen("datorii.in", "r");
FILE *g = fopen("datorii.out", "w");
fscanf(f, "%d%d", &n, &m);
for(i = 1; i <= n; i++)
{fscanf(f, "%d", &x);
update(i, -x);
}
for( i = 1; i <= m; i++ )
{
fscanf(f, "%d%d%d", &nr, &x, &y);
if(!nr) update(x, y);
else fprintf(g, "%d\n", query(y) - query(x-1));
}
fclose(f);
fclose(g);
return 0;
}