Pagini recente » Cod sursa (job #3223047) | Cod sursa (job #219879) | Cod sursa (job #2746692) | Cod sursa (job #677249) | Cod sursa (job #1350357)
#include <cstdio>
using namespace std;
const int MAX_N = 100000;
FILE *in, *out;
int aib[MAX_N];
int n;
int query(int p)
{
int sum = 0;
while(p != 0)
{
sum += aib[p];
p -= p&(-p);
}
return sum;
}
void update(int p, int val)
{
while(p <= n)
{
aib[p] += val;
p += p&(-p);
}
}
int main()
{
in = fopen("datorii.in", "r");
out = fopen("datorii.out", "w");
int m, nr;
int i;
fscanf(in, "%d%d", &n, &m);
for(i = 1; i <= n; i++)
{
fscanf(in, "%d", &nr);
update(i, nr);
}
int tip, a, b;
for(i = 1; i <= m; i++)
{
fscanf(in, "%d%d%d", &tip, &a, &b);
if(tip == 0) update(a,-b);
else fprintf(out, "%d\n", query(b)-query(a-1));
}
fclose(in);
fclose(out);
return 0;
}