Mai intai trebuie sa te autentifici.
Cod sursa(job #2209167)
| Utilizator | Data | 1 iunie 2018 23:09:11 | |
|---|---|---|---|
| Problema | Datorii | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.71 kb |
#include <vector>
#include <fstream>
using namespace std;
void add(vector<int> &bit, int i, int x) {
for (; i <= bit.size(); i += i & -i) bit[i] += x;
}
int prefix(vector<int> &bit, int i) {
int sum = 0;
for (; i; i -= i & -i) sum += bit[i];
return sum;
}
int main() {
ifstream f("datorii.in");
ofstream g("datorii.out");
int N, M; f >> N >> M;
vector<int> bit(N + 1);
for (int i = 1; i <= N; i++) {
int x; f >> x; add(bit, i, x);
}
while (M--) {
int op, a, b; f >> op >> a >> b;
if (op == 0) {
add(bit, a, -b);
} else {
g << prefix(bit, b) - prefix(bit, a-1) << endl;
}
}
return 0;
}
