Pagini recente » Cod sursa (job #882573) | Cod sursa (job #615958) | Cod sursa (job #1163747) | Cod sursa (job #2702730) | Cod sursa (job #1101015)
#include<iostream>
#include<fstream>
using namespace std;
ifstream fin("datorii.in");
ofstream fout("datorii.out");
int arb[100001], n, m, i, a, b;
bool c;
void update(int idx, int val) {
while(idx <= n) {
arb[idx] -= val;
idx += (idx & -idx);
}
}
int read(int idx) {
int sol = 0;
while(idx > 0) {
sol += arb[idx];
idx -= (idx & -idx);
}
return sol;
}
int main() {
fin >> n >> m;
for(i = 1; i <= n; i++) {
fin >> a;
update(i, -a);
}
for(i = 1; i <= m; i++) {
fin >> c;
if(!c) {
fin >> a >> b;
update(a, b);
}
if(c) {
fin >> a >> b;
fout << read(b) - read(a - 1) << '\n';
}
}
fin.close();
fout.close();
return 0;
}