Cod sursa(job #484468)

Utilizator cosmyoPaunel Cosmin cosmyo Data 14 septembrie 2010 16:33:34
Problema Datorii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.56 kb
#include<fstream.h>
const int NMAX=100005;
int n,m,c[NMAX],a,b,r,x;
int poz(int x)
{return (x&(x-1))^x;}
int suma(int k)
{int su=0;
 for(;k>=1;k-=poz(k))
	su+=c[k];
 return su;
}
void update(int k,int x)
{for(;k<=n;k+=poz(k))
	c[k]+=x;
}
int main()
{ifstream fin("datorii.in");
 ofstream fout("datorii.out");
  fin>>n>>m;
  int i;
   for(i=1;i<=n;++i)
	   {fin>>x;update(i,x);}
  for(i=1;i<=m;++i)
	  {fin>>r>>a>>b;
		  if(r==0)
			 update(a,-b);
		  else
			  fout<<suma(b)-suma(a-1)<<'\n';
	  }
 fin.close();
 fout.close();
return 0;
}