Cod sursa(job #61529)

Utilizator bacerandreiBacer Andrei bacerandrei Data 19 mai 2007 18:42:31
Problema Datorii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.63 kb
#include<fstream.h>
long long a[15000],n,m,t,v,i,u,j,s,k,x;
int query(int x)
{
 int r=0;
 for (; x;x-=x&(x-1)^x)
  r+=a[x];
 return r;
}
void update(int x,int v)
{
 for(;x<=n;x+=x^(x-1)&x)
  a[x]+=v;
}
int main()
{
  ifstream f("datorii.in");
  ofstream g("datorii.out");
   f>>n>>m;
  for(i=1;i<=n;i++)
   f>>a[i];
  for(i=1;i<=m;i++)
   {
    f>>u>>t>>v;
    s=-x;
     if(u==0)
     {
      a[t]=a[t]-v;
      k=k+query(t);
     }
     else
      {
      for(j=t;j<=v;j++)
       s=s+query(j);
       g<<s-query(t-1)<<"\n";
       k=k+query(t-1);

      }
     if(i==1)
      x=k;
   }
  return 0;
}