Pagini recente » Cod sursa (job #2330515) | Cod sursa (job #2217200) | Cod sursa (job #368795) | Cod sursa (job #1727242) | Cod sursa (job #3186028)
#include <fstream>
using namespace std;
ifstream fin("datorii.in");
ofstream fout("datorii.out");
const int nmax= 15000;
int n;
int aib[nmax+1];
void update(int x, int y) {
for ( int i= x; i<=n; i+= (i^(i-1))&i ) {
aib[i]+= y;
}
}
int query( int x ) {
int sol= 0;
for ( int i= x; i>0; i-= (i^(i-1))&i ) {
sol+= aib[i];
}
return sol;
}
int main() {
int m;
fin>>n>>m;
for ( int i= 1, x; i<=n; ++i ) {
fin>>x;
update(i, x);
}
for ( int i= 0, t, x, y; i<m; ++i ) {
fin>>t>>x>>y;
if ( t==0 ) {
update(x, -y);
} else {
fout<<query(y)-query(x-1)<<"\n";
}
}
return 0;
}