Pagini recente » Monitorul de evaluare | Cod sursa (job #1076525) | Cod sursa (job #2802807) | Cod sursa (job #455214) | Cod sursa (job #3041517)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("datorii.in");
ofstream fout("datorii.out");
int aib[50000];
int n;
void update(int poz, int val){
for( ; poz <= n; poz += (poz & -poz)){
aib[poz] += val;
}
}
long long query(int poz){
long long s = 0;
for( ; poz > 0; poz -= (poz & -poz)){
s += aib[poz];
}
return s;
}
int main()
{
int i,j,e,k,m,p;
fin >> n >> m;
for(i = 1; i <= n; i++){
fin >> e;
update(i,e);
}
for(i = 1; i <= m; i++){
fin >> k >> p >> e;
if(k == 0){
update(p,-e);
}
else{
fout << query(e) - query(p - 1) << "\n";
}
}
return 0;
}