Pagini recente » Cod sursa (job #876888) | Cod sursa (job #2808824) | Cod sursa (job #1503216) | Cod sursa (job #1814574) | Cod sursa (job #285459)
Cod sursa(job #285459)
#include <stdio.h>
#define MN (15010)
int aib[MN];
int N, M;
void put(int p, int x)
{
for(; p <= N; p += ~(p-1)&p)
aib[p] += x;
}
int get(int p)
{
int s = 0;
for(; p > 0; p -= ~(p-1)&p)
s += aib[p];
return s;
}
int main()
{
int i, a, b, c;
freopen("datorii.in", "r", stdin);
freopen("datorii.out", "w", stdout);
scanf("%d %d", &N, &M);
for(i = 1; i <= N; i ++) {
scanf("%d", &a);
put(i, a);
}
for(i = 0; i < M; i ++) {
scanf("%d %d %d\n", &a, &b, &c);
if(a) {
int tmp1 = get(b-1), tmp2 = get(c);
printf("%d\n", tmp2-tmp1);
} else put(b, -c);
}
fclose(stdin);
fclose(stdout);
return 0;
}