Cod sursa(job #188472)

Utilizator c_iulyanCretu Iulian c_iulyan Data 8 mai 2008 16:18:30
Problema Datorii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.62 kb
#include<cstdio>
using namespace std;
long n,m,t[15005],a[15005];

typedef long long l;

void upd(long i,long x)
{
for(;i<=n;i+=i&-i)
   t[i]+=x;
}

l sum(long i)
{
l s=0;
for(;i;i-=i&-i)
   s+=t[i];

return s;
}

void rd()
{
scanf("%ld%ld",&n,&m);
long i;
for(i=1;i<=n;i++)
   {
   scanf("%ld",&a[i]);
   upd(i,a[i]);
   }
   
long p,x,y;
for(i=1;i<=m;i++)
   {
   scanf("%ld%ld%ld",&p,&x,&y);
   if(p==0)
      upd(x,-y);
   else
      printf("%lld\n",sum(y)-sum(x-1));
   }
}

int main()
{
freopen("datorii.in","r",stdin);
freopen("datorii.out","w",stdout);

rd();

return 0;
}