Pagini recente » Cod sursa (job #1122435) | Cod sursa (job #866703) | Cod sursa (job #1912935) | Cod sursa (job #2171777) | Cod sursa (job #2175678)
#include <fstream>
#define zeros(x) ((x^(x-1))&x)
using namespace std;
ifstream cin("datorii.in");
ofstream cout("datorii.out");
int nr, operatii, val, cerinta, ziua, suma, a, b, poz, s1, s2;
int aib[15004];
void update(int ziua, int val)
{
poz = ziua;
while(poz <= nr)
{
aib[poz] += val;
poz += zeros(poz);
}
}
int intreaba(int ziua)
{
int total=0;
while(ziua > 0)
{
total += aib[ziua];
ziua -= zeros(ziua);
}
return total;
}
int main()
{
cin >> nr >> operatii;
for(int i=1; i <= nr; i++)
{
cin >> val;
update(i,val);
}
for(int yy=1; yy <= operatii; yy++)
{
cin >> cerinta;
if(cerinta == 0)
{
cin >> ziua >> suma;
update(ziua,-suma);
}
else
{
cin >> a >> b;
s2 = intreaba(b);
s1 = intreaba(a-1);
cout << s2-s1 << '\n';
}
}
}