Pagini recente » Cod sursa (job #2607792) | Cod sursa (job #2325713) | Cod sursa (job #2364322) | Cod sursa (job #1802896) | Cod sursa (job #754737)
Cod sursa(job #754737)
#include <fstream>
using namespace std;
ifstream fin("datorii.in");
ofstream fout("datorii.out");
int c[15001],n;
void update(int ind,int val)
{
int poz=0;
while(ind<=n)
{
c[ind]+=val;
while(!(ind&(1<<poz)))
poz++;
ind+=1<<poz;
}
}
int query(int dr)
{
int poz=0,sum=0;
while(dr>0)
{
sum+=c[dr];
while(!(dr&(1<<poz)))
poz++;
dr-=1<<poz;
poz++;
}
return sum;
}
int main()
{
int m,a,b;
fin>>n>>m;
for(int i=1;i<=n;i++)
{
fin>>a;
update(i,a);
}
for(int i=1;i<=m;i++)
{
int cod;
fin>>cod>>a>>b;
if(cod==0)
{
update(a,-b);
}
else
{
fout<<query(b) - query(a-1)<<'\n';
}
}
fin.close();
fout.close();
return 0;
}