Pagini recente » Cod sursa (job #494386) | Cod sursa (job #400296) | Cod sursa (job #80899) | Cod sursa (job #2311172) | Cod sursa (job #949611)
Cod sursa(job #949611)
#include <fstream>
#include <vector>
using namespace std;
#define in "datorii.in"
#define out "datorii.out"
#define N 15005
int aib[N], n, m;
void add (int i, int x) {
while (i <= n) {
aib[i] += x;
i += (i^(i-1)) & i;
}
}
int query (int i) {
int s = 0;
while (i > 0) {
s += aib[i];
i -= (i^(i-1)) & i;
}
return s;
}
int main () {
ifstream fin (in);
fin >> n >> m;
for (int i = 1; i <= n; ++i) {
int x;
fin >> x;
add (i, x);
}
ofstream fout (out);
for (int i = 0; i < m; ++i) {
bool type;
int a, b;
fin >> type >> a >> b;
if (!type)
add (a, -b);
else
fout << query (b) - query (a-1) << "\n";
}
fcloseall();
return 0;
}