Pagini recente » Cod sursa (job #2815309) | Cod sursa (job #260803) | Cod sursa (job #930001) | Cod sursa (job #1404922) | Cod sursa (job #641717)
Cod sursa(job #641717)
#include<fstream>
using namespace std;
ifstream in("datorii.in");
ofstream out("datorii.out");
int n,m,aib[15010];
inline int zeros(const int &nr) {
return nr&(-nr);
}
inline void add(int poz, int nr) {
while(poz<=n) {
aib[poz]+=nr;
poz+=zeros(poz);
}
}
inline int sum(int poz) {
int sum=0;
while(poz) {
sum+=aib[poz];
poz-=zeros(poz);
}
return sum;
}
int main() {
int i,nr,poz1,poz2,poz,op;
in >> n >> m;
for(i=1;i<=n;++i) {
in >> nr;
add(i,nr);
}
for(i=1;i<=m;++i) {
in >> op;
if(op==1) {
in >> poz1 >> poz2;
out << sum(poz2) - sum(poz1-1) << "\n";
}
else {
in >> poz >> nr;
add(poz,-nr);
}
}
return 0;
}