Pagini recente » Cod sursa (job #1770031) | Cod sursa (job #829217) | Cod sursa (job #2561255) | Cod sursa (job #2343448) | Cod sursa (job #2753162)
#include<iostream>
#include <fstream>
using namespace std;
int aib[15000], n,m;
void update(int poz, int val)
{
while (poz <= n)
{
aib[poz] += val;
poz += (poz & (-poz));
}
}
int sum(int poz)
{
int s = 0;
while (poz > 0)
{
s += aib[poz];
poz -= (poz & (-poz));
}
return s;
}
int main()
{
bool tip;
ifstream in("datorii.in");
ofstream out("datorii.out");
in >> n >> m;
for (int i = 1; i <= n; ++i)
{
int val;
in >> val;
update(i, val);
}
while (m)
{
m--;
in >> tip;
if (tip)
{
int a, b;
in >> a >> b;
out << sum(b) - sum(a-1) << endl;
}
else
{
int poz, val;
in >> poz >> val;
update(poz, -val);
}
}
return 0;
}