Pagini recente » Cod sursa (job #2083335) | Cod sursa (job #307315) | Cod sursa (job #1323713) | Cod sursa (job #2063156) | Cod sursa (job #1225219)
#include <fstream>
#include <iostream>
using namespace std;
#define nmax 15001
ifstream in("datorii.in");
ofstream out("datorii.out");
int n,m;
int S[nmax];
int i,x,tip,t,v,p,q;
void update(int p, int x)
{
while (p <= n)
{
S[p] += x;
p += (p^(p-1)) & p;
}
}
int query(int p)
{
int s = 0;
while (p > 0)
{
s += S[p];
p -= (p^(p-1)) & p;
}
return s;
}
int main()
{
in >> n >> m;
for (i = 1; i <= n; i++)
{
in >> x,
update(i, x);
}
for (i = 1; i <= m; i++)
{
in >> tip;
if (tip == 0)
{
in >> t >> v;
update(t, -v);
}
else
{
in >> p >> q;
out << query(q) - query(p-1) << "\n";
}
}
return 0;
}