Pagini recente » Cod sursa (job #2776592) | Cod sursa (job #418247) | Cod sursa (job #3245619) | Cod sursa (job #275144) | Cod sursa (job #990876)
Cod sursa(job #990876)
#include <fstream>
int aib[15001];
int main(){
std::ifstream fin("datorii.in");
std::ofstream fout("datorii.out");
int N,M;
fin>>N>>M;
int temp1,temp2,i,sum1,sum2;
char c;
for(i=1;i<=N;++i){
fin>>temp2;
temp1=i;
while(temp1<=N){
aib[temp1]+=temp2;
temp1 += temp1&(-temp1);
}
}
while(M--){
fin>>c>>temp1>>temp2;
if(c=='0'){
while(temp1<=N){
aib[temp1]-=temp2;
temp1 += temp1&(-temp1);
}
}
else{
sum1=0;
sum2=0;
temp1--;
while(temp1>0){
sum1+=aib[temp1];
temp1-=temp1&(-temp1);
}
while(temp2>0){
sum2+=aib[temp2];
temp2&=temp2-1;
}
fout<<sum2-sum1<<'\n';
}
}
}