Pagini recente » Cod sursa (job #1906434) | Cod sursa (job #1578896) | Cod sursa (job #1450620) | Cod sursa (job #968622)
Cod sursa(job #968622)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream fin("datorii.in");
ofstream fout("datorii.out");
const int N = 15005;
int n, m;
vector <int> arb(N, 0);
void Add(int p, int v)
{
while(p <= n)
{
arb[p] += v;
p += (p^(p-1)) & p;
}
}
void Edit(int p, int v)
{
while(p <= n)
{
arb[p] -= v;
p += (p^(p-1)) & p;
}
}
int Sum(int p)
{
int s = 0;
while(p)
{
s += arb[p];
p -= (p^(p-1)) & p;
}
return s;
}
int main()
{
fin>>n>>m;
for(int i=1; i<=n; i++)
{
int x;
fin>>x;
Add(i, x);
}
while(m--)
{
int cod, a, b;
fin>>cod>>a>>b;
if(!cod)
Edit(a, b);
else
fout<<Sum(b)-Sum(a-1)<<'\n';
}
return 0;
}