Pagini recente » Cod sursa (job #2183126) | Cod sursa (job #3194050) | Cod sursa (job #2516339) | Cod sursa (job #105625) | Cod sursa (job #2579034)
#include<fstream>
using namespace std;
ifstream in("datorii.in");
ofstream out("datorii.out");
const int NMax = 15000;
int N, M, A[NMax+5], Aib[NMax+5];
void Update(int Pos, int Val) {
for (int i = Pos; i <= N; i+=(i&(-i)))
Aib[i] += Val;
}
int Query(int Pos1, int Pos2) {
int Sum1 = 0, Sum2 = 0;
for (int i = Pos1; i > 0; i-=(i&(-i)))
Sum1 += Aib[i];
for (int i = Pos2; i > 0; i-=(i&(-i)))
Sum2 += Aib[i];
return Sum2 - Sum1;
}
int main() {
in >> N >> M;
for (int i = 1, x; i <= N; i++) {
in >> x;
Update(i,x);
}
while (M--) {
int t, x, y;
in >> t >> x >> y;
if (t == 0)
Update(x,-y);
else
out << Query(x-1,y) << '\n';
}
}