Pagini recente » Cod sursa (job #2912501) | Cod sursa (job #1863573) | Cod sursa (job #2901576) | Cod sursa (job #44027) | Cod sursa (job #2081713)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("datorii.in");
ofstream out("datorii.out");
const int maxn = 100005;
int aib[maxn];
int n;
int zeros(int x)
{
return x ^ (x & (x - 1));
}
void update(int poz, int val)
{
for (int i = poz; i <= n; i += zeros(i))
aib[i] += val;
}
int query(int poz)
{
int s = 0;
for (int i = poz; i >= 1; i -= zeros(i))
s += aib[i];
return s;
}
int main()
{
int m;
in >> n >> m;
for(int i = 1; i <= n; i++)
{
int x;
in >> x;
update(i, x);
}
for(int i = 1; i <= m; i++)
{
int p;
in >> p;
if(p == 0)
{
int poz, val;
in >> poz >> val;
update(poz, -val);
}
else
{
int x, y;
in >> x >> y;
out << query(y) - query(x - 1) << "\n";
}
}
return 0;
}