Pagini recente » Cod sursa (job #1305995) | Rating chestie chestie (Chestie) | Cod sursa (job #1098235) | Clasament sim | Cod sursa (job #1794262)
#include <fstream>
#include <cmath>
#define ub(n) (n & (-n))
using namespace std;
ifstream f ("aib.in");
ofstream g ("aib.out");
int N, M, c, x, j, a, b;
int AIB[100003];
int add(int poz, int val) {
for(int i = poz; i <= N; i += ub(i)) AIB[i] += val;
return 0;
}
int sum(int poz) {
int sum = 0;
for(int i = poz; i >= 1; i -= ub(i)) sum += AIB[i];
return sum;
}
int main()
{
f >> N >> M;
for(int i = 1; i <= N; i++)
f >> x, add(i, x);
for(int i = 1; i <= M; i++) {
f >> c;
if(c == 0) {
f >> j >> x;
add(j, x);}
else if(c == 2) {
f >> x, j = 1;
while(sum(j) < x) j++;
g << j << "\n";
}
else if (c == 1) f >> a >> b, g << abs(sum(a-1) - sum(b)) << "\n";
}
return 0;
}