Pagini recente » Cod sursa (job #1635360) | Cod sursa (job #2771848) | Cod sursa (job #1040977) | Cod sursa (job #844327) | Cod sursa (job #2400784)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("aib.in");
ofstream fout("aib.out");
const int NMAX = 100003;
int tree[NMAX];
int a[NMAX];
int N, Q;
int task, x, y;
void Update(int pos, int val)
{
while(pos <= N)
{
tree[pos] -= val;
pos += (pos & -pos);
}
}
int Query(int pos)
{
int sum = 0;
while( pos > 0)
{
sum += tree[pos];
pos -= (pos & - pos);
}
return sum;
}
void Do()
{
fin >> N >> Q;
for(int i = 1; i <= N; ++i)
{
fin >> a[i];
Update(i, -a[i]);
}
for(int q = 1; q <= Q; ++q)
{
fin >> task >> x >> y;
if(task == 0) Update(x, y);
else fout << Query( y ) - Query( x - 1 ) << '\n';
}
}
int main()
{
Do();
return 0;
}