Pagini recente » Cod sursa (job #1381381) | Cod sursa (job #405971) | Cod sursa (job #2282353) | Cod sursa (job #2354396) | Cod sursa (job #2753157)
#include <fstream>
using namespace std;
const int N = 1e5 + 1;
const int L = 16;
int aib[N], n;
void actualizare(int poz, int val)
{
while (poz <= n)
{
aib[poz] += val;
poz += (poz & (-poz));
}
}
int interogare(int poz)
{
int sum = 0;
while (poz != 0)
{
sum += aib[poz];
poz -= (poz & (-poz));
}
return sum;
}
int main()
{
ifstream in("datorii.in");
ofstream out("datorii.out");
int m;
in >> n >> m;
for (int i = 1; i <= n; i++)
{
int nr;
in >> nr;
actualizare(i, nr);
}
for (int i = 0; i < m; i++)
{
int tip;
in >> tip;
if (tip == 0)
{
int poz, val;
in >> poz >> val;
actualizare(poz, -val);
}
else
{
int a, b;
in >> a >> b;
out << interogare(b) - interogare(a - 1) << "\n";
}
}
in.close();
out.close();
return 0;
}