Pagini recente » Cod sursa (job #3187265) | Cod sursa (job #460641) | Cod sursa (job #1165275) | Cod sursa (job #1360394) | Cod sursa (job #3223183)
#include <iostream>
#include <fstream>
#include <iomanip>
#include <algorithm>
#include <climits>
#include <cstring>
#include <cctype>
#include <cmath>
#define ub(x) (x & (-x))
using namespace std;
ifstream f("datorii.in");
ofstream g("datorii.out");
int a[100005] , aib[100005] , n;
void add1(int x , int val)
{
for(int i = x;i <= n;i += ub(i)) aib[i] += val;
}
void add2(int x , int val)
{
for(int i = x;i <= n;i += ub(i)) aib[i] -= val;
}
int sum(int x)
{
int s=0 , i;
for(i = x;i >= 1;i -= ub(i)) s += aib[i];
return s;
}
int main()
{
int q = 0;
f >> n >> q;
for(int i = 1;i <= n;i++){
f >> a[i];
add1(i,a[i]);
}
//int q;
int c, x, y;
for(int i = 1;i <= q;i++){
//add1(i,a[i]);
f >> c >> x >> y;
if (c == 1)g << sum(y) - sum(x-1) << '\n';
else add2(x,y);
}
}