Pagini recente » Cod sursa (job #351251) | Cod sursa (job #726867) | Cod sursa (job #821613) | Cod sursa (job #835533) | Cod sursa (job #3148825)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream fin("datorii.in");
ofstream fout("datorii.out");
int N, Q, x, y, type, mid;
vector<int> BIT;
void Update(int i, int val){
while(i <= N){
BIT[i] += val;
i += (i & -i);
}
}
int Querry(int i){
int sum = 0;
while(i > 0){
sum += BIT[i];
i -= (i & -i);
}
return sum;
}
int Range_Querry(int i, int j){
return Querry(j) - Querry(i - 1);
}
int main()
{
fin >> N >> Q;
BIT.resize(N + 1, 0);
for(int i = 1; i <= N; i ++)
{
fin >> x;
Update(i, x);
}
for(int i = 1; i <= Q; i ++)
{
fin >> type;
if(type == 0){
fin >> x >> y;
Update(x, -y);
}
else {
fin >> x >> y;
fout << Range_Querry(x, y) << '\n';
}
}
return 0;
}