Pagini recente » Cod sursa (job #1307008) | Cod sursa (job #2141776) | Cod sursa (job #1881666) | Istoria paginii problema/produse | Cod sursa (job #1249066)
#include <iostream>
#include<fstream>
#include<math.h>
using namespace std;
//#define zeros(x) ( (x ^ (x - 1)) & x )
#define zeros(x) (x&(-x))
int c[15002];
int suma(int poz,int c[])
{
int i,s=0;
for(i=poz;i>0;i=i-zeros(i))
s=s+c[i];
return s;
}
void modifica(int poz,int val,int c[],int n)
{
int i;
for(i=poz;i<=n;i=i+zeros(i))
c[i]=c[i]+val;
}
int main()
{
int n,m,i,st,dr,val,poz,cod,j;
ifstream f("datorii.in");
ofstream g("datorii.out");
f>>n>>m;
for(i=1;i<=n;i++)
{
f>>val;
modifica(i,val,c,n);
}
for(i=1;i<=m;i++)
{
f>>cod;
if(cod==0)
{
f>>poz>>val;
modifica(poz,-val,c,n);
}
else
{
f>>st>>dr;
g<<suma(dr,c)-suma(st-1,c)<<endl;
}
}
return 0;
}