Pagini recente » Cod sursa (job #1022153) | Cod sursa (job #1496998) | Cod sursa (job #1874717) | Cod sursa (job #903415) | Cod sursa (job #1872637)
#include<iostream>
#include<vector>
#include<fstream>
#define zeros(x) ((x^(x-1)) & x)
using namespace std;
int N, M;
int vec[15001];
void Adauga(int poz, int val)
{
for ( auto i = poz;i <= N;i += zeros(i))
vec[i] += val;
}
int Suma(int poz)
{
int SumaInterogare = 0;
for (auto i = poz;i > 0;i -= zeros(i))
SumaInterogare += vec[i];
return SumaInterogare;
}
int main()
{
ifstream fin("datorii.in");
ofstream fout("datorii.out");
int x, poz, val;
fin >> N >> M;
for (auto i = 1;i <= N;i++)
{
fin>> val;
Adauga(i, val);
}
while (M--)
{
fin >> x >> poz >> val;
if (x == 0)
Adauga(poz, -val);
if (x == 1)
fout << Suma(val) - Suma(poz - 1)<<endl;
}
fin.close();
fout.close();
return 0;
}