Pagini recente » Cod sursa (job #1422645) | Cod sursa (job #2562037) | Cod sursa (job #1082944) | Cod sursa (job #3262289) | Cod sursa (job #85076)
Cod sursa(job #85076)
//Bou Marian Catalin
#include<fstream.h>
ifstream fin("datorii.in");
ofstream fout("datorii.out");
int a[15001],n;
int doilan(int poz)
{
int p=1;
while(poz%2==0)
{ poz/=2; p*=2; }
return p;
}
void add(int poz,int x)
{
if(poz>n) return;
a[poz]+=x;
add(poz+doilan(poz),x);
}
int find(int poz)
{
if(poz==0) return 0;
return a[poz]+ find(poz-doilan(poz));
}
int main()
{
int i,x,m,r,q,p,s;
fin>>n>>m;
for(i=0;i<=n;i++)
a[i]=0;
for(i=1;i<=n;i++)
{
fin>>x;
add(i,x);
}
for(i=1;i<=m;i++)
{
fin>>r>>p>>q;
if(r==0) add(p,(-1)*q);
else
{
s=find(q)-find(p-1);
fout<<s<<'\n';
}
}
return 0;}