Pagini recente » Cod sursa (job #956778) | Cod sursa (job #2876630) | Cod sursa (job #309406) | Cod sursa (job #1902850) | Cod sursa (job #2626054)
#include<fstream>
using namespace std;
ifstream f ("datorii.in");
ofstream g ("datorii.out");
int n,v[15001];
int Tr(int x)
{
return x & (-x);
}
void update(int is, int val)
{
for (int i =is; i <= n; i += Tr(i))
v[i] += val;
}
int suma (int is)
{
int s = 0;
for (int i = is; i > 0; i -=Tr(i))
s += v[i];
return s;
}
int main() {
int m, nr, op, x,y;
f >> n>> m;
for (int i = 1; i <= n; ++i){
f >> nr;
update(i, nr);
}
for (int i=0; i < m; i++) {
f >> op >> x >> y;
if (op == 0)
update (x, - y);
if (op == 1)
g<< suma(y) - suma(x - 1) <<endl;
}
f.close();
g.close();
return 0;
}