Pagini recente » Cod sursa (job #226678) | Cod sursa (job #1622622) | Cod sursa (job #499713) | Cod sursa (job #522581) | Cod sursa (job #479690)
Cod sursa(job #479690)
#include <fstream>
#define zero(x) (x&(x^(x-1)))
using namespace std;
int arb[15005],a[15005],n,m;
void achita(int poz,int val)
{
int i;
for(i=poz;i<=n;i+=zero(i)) arb[i]-=val;
}
int interogare(int l,int r)
{
int s1=0,s2=0,i;
for(i=l-1;i>0;i-=zero(i)) s1+=arb[i];
for(i=r;i>0;i-=zero(i)) s2+=arb[i];
return (s2-s1);
}
int main()
{
int i,x,y,z;
ifstream fi("datorii.in");
ofstream fo("datorii.out");
fi>>n>>m;
for(i=1;i<=n;i++) fi>>a[i], a[i]+=a[i-1];
for(i=1;i<=n;i++)
arb[i]=a[i]-a[i-zero(i)];
for(i=1;i<=m;i++)
{
fi>>x>>y>>z;
if(x==0) achita(y,z); else fo<<interogare(y,z)<<"\n";
}
fo.close();
return 0;
}