Pagini recente » Cod sursa (job #826813) | Cod sursa (job #2605995) | Cod sursa (job #3149580) | Cod sursa (job #2613433) | Cod sursa (job #2626355)
#include<stdio.h>
#include<fstream>
#define NMAX 100007
using namespace std;
int Aib[NMAX];
int n, Q;
void update(int poz, int val){
while(poz <= n){
Aib[poz] += val;
poz += poz & (poz ^ (poz - 1));
}
}
int query(int poz){
int sol = 0;
while(poz){
sol += Aib[poz];
poz -= poz & (poz ^ (poz - 1));
}
return sol;
}
int main(){
ifstream f("datorii.in");
ofstream g("datorii.out");
f>>n>>Q;
for(int i = 1; i <= n; ++ i){
int a;
f>>a;
update(i, a);
}
for(; Q > 0; -- Q){
int Tip = 0, a = 0, b = 0, Sum = 0;
f>>Tip;
f>>a>>b;
if(Tip == 0)
update(a, -b);
if(Tip == 1)
g<< query(b) - query(a - 1);
}
return 0;
}