Pagini recente » Cod sursa (job #707160) | Cod sursa (job #621578) | Cod sursa (job #2789763) | Cod sursa (job #877473) | Cod sursa (job #1163210)
#include <iostream>
#include <fstream>
#include <cmath>
using namespace std;
ifstream f("datorii.in");
ofstream g("datorii.out");
int n,m,c[15002],ind,val,poz,a,b;
bool bin;
int op1(int a, int b){int s=0;
while (b>0){
s+=c[b];
b-=(b&(b-1))^b;
}
while (a>0){
s-=c[a];
a-=(a&(a-1))^a;
}
return s;
}
void op2(int a, int b){
while (a<=n){
c[a]+=b;
a+=(a&(a-1))^a;
}
}
int main()
{
f>>n>>m;
for(int i=1;i<=n;i++){ f>>val; op2(i,val);}
for(int i=1;i<=m;i++){
f>>bin;f>>ind>>val;;
if(bin) g<<op1(ind-1,val)<<endl;
else op2(ind,-val);
}
f.close();g.close();
return 0;
}