Pagini recente » Cod sursa (job #57766) | Cod sursa (job #1852458) | Cod sursa (job #1041130) | Cod sursa (job #1696015) | Cod sursa (job #2790936)
#include <iostream>
#include <fstream>
#define maxi 15005
#define putere(x) ((x^(x-1))&x)
using namespace std;
ifstream f;
int aib[maxi],n,m,x,op,a,b;
void UPDATE(int x,int val)
{
for(int i=x;i<=n;i+=putere(i))
aib[i]+=val;
return;
}
int SUM(int x)
{
int suma=0;
for(int i=x;i>0;i-=putere(i))
suma+=aib[i];
return suma;
}
void SOLVE()
{
f.open("datorii.in",ios::in);
g.open("datorii.out",ios::out);
f>>n>>m;
for(int i=1;i<=n;i++)
{f>>x;
UPDATE(i,x);
}
for(int i=1;i<=m;i++)
{
f>>op>>a>>b;
if(op==0)
UPDATE(a,-b);
else g<<SUM(b)-SUM(a-1)<<'\n';
}
f.close();
g.close();
return;
}
int main()
{
SOLVE();
return 0;
}