Pagini recente » Cod sursa (job #2967458) | Cod sursa (job #3212726) | Cod sursa (job #107657) | Cod sursa (job #1624587) | Cod sursa (job #2209758)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("datorii.in");
ofstream fout("datorii.out");
bool Test;
int n, m, a[15001], st, dr, poz, x, val;
int lsb(int n)
{
return (n &(-n));
}
int sum(int st, int dr)
{
int s1 = 0, s2 = 0;
while (dr)
{
s1 += a[dr];
dr -=lsb(dr);
}
st--;
while (st)
{
s2 += a[st];
st -=lsb(st);
}
return (s1 - s2);
}
int update(int i, int k)
{
while (i <= n)
{
a[i] +=k;
i += lsb(i);
}
}
int main()
{
fin >> n >> m;
for (int i = 1; i <= n; ++i)
{
fin >> x;
update(i, x);
}
for (int i = 1; i <= m; ++i)
{
fin >> Test;
if (Test)
{
fin >> st >> dr;
fout << sum(st, dr) << '\n';
}
else
{
fin >> poz >> val;
update(poz, -val);
}
}
return 0;
}