Cod sursa(job #381789)

Utilizator zloteanu.adrianzloteanu adrian nichita zloteanu.adrian Data 11 ianuarie 2010 17:17:13
Problema Datorii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.48 kb
#include<fstream.h>
int arb[15005],n,m;
void plus(int x, int v)
{for(x=x;x<=n;x=x+(x^(x-1))&x)
   arb[x]=arb[x]+v;}
int qu(int x)
{int s=0;
for(;x;x=x=x-(x^(x-1))&x)
  s=s+arb[x];
return s;
}
int main()
{int i,val,op,a,b;
ifstream q("datorii.in");
ofstream w("datorii.out");
q>>n>>m;
for(i=1;i<=n;i++)
  {q>>val;
  plus(i,val);}
for(i=1;i<=m;i++)
  {q>>op;
  if(op==0)
   {q>>a>>b;
   plus(a,-b);}
  if(op==1)
   {q>>a>>b;
   w<<qu(b)-qu(a-1)<<'\n';}}
return 0;}