Cod sursa(job #287409)

Utilizator alisssiaMititelu Andra alisssia Data 24 martie 2009 20:48:44
Problema Datorii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.59 kb
using namespace std;
#include<cstdio>
int H[100000],n;
 
void update(int poz,int val)
{
    
    for(poz;poz<=n;poz+=poz & -poz) H[poz]-=val;
}

int sum(int poz)
{
    int s=0;
    for(poz;poz;poz-=poz &-poz) s+=H[poz];
    return s;
}

int main()

{
    int i,m,k,x,y,a;
    freopen("datorii.in","r",stdin);
    freopen("datorii.out","w",stdout);
     scanf("%d%d",&n,&m);
         for(i=1;i<=n;i++)
	 {
	 scanf("%d",&a);
      x=i;
	 update(x,-a);
	}				         
    for(i=0;i<m;i++)
    {
	scanf("%d%d%d",&k,&x,&y);
	if(k) printf("%d\n",sum(y)-sum(x-1));
	else update(x,y);
    }
    return 0;
}