Pagini recente » Cod sursa (job #1167380) | Cod sursa (job #453055) | Cod sursa (job #3157283) | Cod sursa (job #2867886) | Cod sursa (job #1511442)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream f("datorii.in");
ofstream g("datorii.out");
vector <int> aib;
int n, m, q;
void update(int zi, int bani){
int i = zi;
for(; i <= n; i += (i & (-i) ) )
aib[i] += bani;
}
int inter(int zi){
int suma = 0;
for(; zi > 0; zi -= (zi & (-zi) ) )
suma += aib[zi];
return suma;
}
int main(){
int x, y;
f>>n>>m;
aib.resize(n + 1, 0);
for(int i = 1; i <= n; ++i){
f>>x;
update(i, x);
}
for(int i = 1; i <= m; ++i){
f>>q>>x>>y;
if(q == 0){
update(x, -y);
}
else{
g<<inter(y) - inter(x - 1)<<'\n';
}
}
return 0;
}