Pagini recente » Cod sursa (job #1689044) | Cod sursa (job #2442391) | Cod sursa (job #233985) | Borderou de evaluare (job #2991036) | Cod sursa (job #2755981)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin ("datorii.in");
ofstream fout ("datorii.out");
int n, m;
int v[15001], aib[15001];
void read(){
fin >> n >> m;
for(int i = 1; i <= n; i++)
{
fin>>v[i];
add(i, v[i]);
}
}
void add (int k, int val){
for(int i = k; i <= n; i += i & (-i)){
aib[i] += val;
}
}
int sum(int k){
int s = 0;
for(int i= k; i >= 1; i -= i&(-i)){
s += aib[i];
}
return s;
}
int main()
{
int task, x, y;
read();
for(int i = 1; i <= m; i++)
{
fin >> task >> x >> y;
if(task == 0){
add(x, -y);
}
else{
fout << sum(y) - sum(x-1) << "\n";
}
}
return 0;
}