Pagini recente » Cod sursa (job #1297478) | Cod sursa (job #1265970) | Rating Mureseanu Bogdan Marian (Mureseanu_Bogdan_Marian_325CC) | Cod sursa (job #424483) | Cod sursa (job #2828767)
#include <fstream>
using namespace std;
ifstream in("datorii.in");
ofstream out("datorii.out");
int aib[15005];
int n, x, y, c, m;
int suma(int x)
{
int s = 0;
for (int i = x; i > 0; i -= (i & -i))
s += aib[i];
return s;
}
void adaugavaloare(int x, int val)
{
for (int i = x; i <= n; i += (i & -i))
aib[i] += val;
}
int main()
{
in >> n >> m;
for (int i = 1; i <= n; i++)
{
in >> x;
adaugavaloare(i, x);
}
for (int i = 1; i <= m; i++)
{
in >> c >> x >> y;
if (c == 0) {
adaugavaloare(x, -y);
}
else
out << (suma(y) - suma(x - 1)) << "\n";
}
return 0;
}