Pagini recente » Cod sursa (job #1494341) | Cod sursa (job #762108) | Cod sursa (job #1621460) | Cod sursa (job #3226406) | Cod sursa (job #3133830)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("datorii.in");
ofstream fout("datorii.out");
const int MAX_N = 1000001;
int d[MAX_N];
int n, m;
int t, p1, p2;
int s;
int interog(int p)
{
int sum = 0;
for (int i = p; i > 0; i -= (i & -i))
sum += d[i];
return sum;
}
void actualizeaza(int p, int x)
{
for (int i = p; i <= n; i += (i & -i))
d[i] += x;
}
int main()
{
fin >> n >> m;
for (int i = 1; i <= n; i++)
{
fin >> s;
actualizeaza(i, s);
}
for (int i = 1; i <= m; i++)
{
fin >> t >> p1 >> p2;
if (t == 0)
{
actualizeaza(p1, -p2);
}
else if (t == 1)
{
fout << interog(p2) - interog(p1 - 1) << "\n";
}
}
return 0;
}