Pagini recente » Cod sursa (job #906956) | Cod sursa (job #657213) | Cod sursa (job #1854311) | Cod sursa (job #757851) | Cod sursa (job #2624061)
#include <iostream>
#include <fstream>
#define zero(x) ((x ^ (x-1)) & x)
using namespace std;
ifstream fin("datorii.in");
ofstream fout("datorii.out");
int n, m, v[15005], w[15005], i, x, y, c;
void adauga(int x, int cant)
{
for(int i=x; i<=n; i+=zero(i))
w[i]+=cant;
}
int calcul(int x)
{
int rez=0;
for(int i=x; i>0; i-=zero(i))
rez+=w[i];
return rez;
}
int main()
{
fin>>m>>n;
for(i=1; i<=n; ++i)
{
fin>>x;
adauga(i,x);
}
for(i=1; i<=m; ++i)
{
fin>>c>>x>>y;
if(c==0)
adauga(x, -y);
else
fout<<calcul(y)-calcul(x-1)<<" ";
}
return 0;
}