Pagini recente » Cod sursa (job #766358) | Cod sursa (job #2778794) | Cod sursa (job #2494991) | Cod sursa (job #2547567) | Cod sursa (job #2146132)
#include <bits/stdc++.h>
#define nmax 15007
using namespace std;
ifstream f("datorii.in");
ofstream g("datorii.out");
int n, m, aib[nmax];
void UpDate(int p, int x)
{
while (p <= n)
{
aib[p] += x;
p += (p & (-p));
}
}
int Query(int p)
{
int s = 0;
while (p > 0)
{
s += aib[p];
p -= (p & (-p));
}
return s;
}
void Citire()
{
int i, x;
f >> n >> m;
for (i=1; i<=n; i++)
{
f >> x;
UpDate(i, x);
}
int op, y;
for (i=1; i<=m; i++)
{
f >> op >> x >> y;
if (op) g << Query(y) - Query(x - 1) << "\n";
else UpDate(x, -y);
}
}
int main()
{
Citire();
f.close();
g.close();
}