Pagini recente » Cod sursa (job #343711) | Cod sursa (job #985382) | Cod sursa (job #508672) | Cod sursa (job #2318799) | Cod sursa (job #2098399)
#include <iostream>
#include <fstream>
#define zeros(x) ((x^(x-1))&x)
using namespace std;
ifstream f("datorii.in");
ofstream g("datorii.out");
int n, m, AIB[15001], x, k, y;
/*void add(int x, int quantity){
for(int i=x; i<=n; i+=zeros(i))
AIB[i]+=quantity;
}
int compute(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>>k;
if(k!=0)
add(i, k);
}
for(int i=0; i<m; i++){
f>>k>>x>>y;
if(k){
int s=0;
for(int i=y; i>0; i-=zeros(i))
s+=AIB[i];
for(int i=x-1; i>0; i-=zeros(i))
s-=AIB[i];
g<<s<<"\n";
}
else{
for(int i=x; i<=n; i+=zeros(i))
AIB[i]-=y;
}
}
return 0;
}