Pagini recente » Cod sursa (job #1844842) | Cod sursa (job #2322114) | Cod sursa (job #2258944) | Cod sursa (job #3176321) | Cod sursa (job #1330217)
#include <iostream>
#include<fstream>
#define maxim 15001
#define zeros(x) ( (x ^ (x - 1)) & x )
using namespace std;
ifstream f("datorii.in");
ofstream g("datorii.out");
int n, m, x, y,cod, a[maxim], aib[maxim];
void adauga(int x, int y)
{ for(int i=x; i<=n; i+=zeros(i))
aib[i]+=y;
}
int suma(int x)
{ int s=0;
for(int i=x; i>0; i-=zeros(i))
s+=aib[i];
return s;
}
int main()
{ f>>n>>m;
for(int i=1; i<=n; i++)
{ f>>x, adauga(i,x);}
for(int i=1; i<=m; i++)
{ f>>cod>>x>>y;
if(cod==1) g<<suma(y)-suma(x-1)<<"\n";
else adauga(x, -y);
}
return 0;
}