Pagini recente » Cod sursa (job #1830193) | Cod sursa (job #2696815) | Cod sursa (job #2399700) | Cod sursa (job #1701806) | Cod sursa (job #1838811)
#include <fstream>
using namespace std;
ifstream cin("datorii.in");
ofstream cout("datorii.out");
int nr, operatii, i, suma[15005], v[15005], cat, AIB[15005], yy, cod, p1, p2, c1, c2;
int zeros(int i)
{
return (i^(i-1))&i;
}
void adauga(int ziua, int valoare)
{
int i;
for(i=ziua; i <= nr; i+=zeros(i))
{
AIB[i] += valoare;
}
}
int intrebare(int ziua)
{
int cat = 0;
int i;
for(i=ziua; i > 0; i-=zeros(i))
{
cat += AIB[i];
}
return cat;
}
int main()
{
cin >> nr >> operatii;
for(i=1; i <= nr; i++)
{
cin >> v[i];
suma[i] = suma[i-1] + v[i];
}
for(i=1; i <= nr; i++)
{
AIB[i] = suma[i] - suma[i-zeros(i)];
}
//for(i=1; i <= nr; i++)
//cout << AIB[i] << ' ';
for(yy=1; yy <= operatii; yy++)
{
cin >> cod >> p1 >> p2;
if(cod == 0)
{
adauga(p1, -p2);
}
else
{
c1 = intrebare(p1-1);
c2 = intrebare(p2);
cout << c2-c1 << '\n';
}
}
}