Pagini recente » Cod sursa (job #1398109) | Cod sursa (job #249057) | Cod sursa (job #2114687) | Cod sursa (job #3148026) | Cod sursa (job #2636427)
#include <fstream>
#define zeros(x) ((x^(x-1))&x)
using namespace std;
ifstream fin("datorii.in");
ofstream fout("datorii.out");
const int maxx = 15005;
int n, m;
int a[maxx];
int aib[maxx];
void Subtract(int poz, int val)
{
for(int i = poz; i <= n; i += zeros(i))
{
aib[i] -= val;
}
}
int Query(int limit)
{
int rez = 0;
for(int i = limit; i >= 1; i -= zeros(i))
{
rez += aib[i];
}
return rez;
}
int main()
{
fin >> n >> m;
for(int i = 1; i <= n; i++)
{
fin >> a[i];
Subtract(i, -a[i]);
}
for(int i = 1; i <= m; i++)
{
int cod;
fin >> cod;
if(cod)
{
int p, q;
fin >> p >> q;
int ans = Query(q) - Query(p - 1);
fout << ans << "\n";
}
else
{
int t, v;
fin >> t >> v;
Subtract(t, v);
}
}
return 0;
}