Mai intai trebuie sa te autentifici.
Cod sursa(job #2410496)
Utilizator | Data | 20 aprilie 2019 09:21:25 | |
---|---|---|---|
Problema | Datorii | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.7 kb |
#include <iostream>
#include <fstream>
#define NMAX 15001
using namespace std;
ifstream f("datorii.in");
ofstream g("datorii.out");
int n, m, aib[NMAX];
void adauga(int val, int k)
{
int i;
for(i=k; i<=n; i+=((i ^ (i - 1)) & i))
aib[i] += val;
}
int suma(int k)
{
int i, s = 0;
for (i=k; i>=1; i-=((i ^ (i - 1)) & i))
s += aib[i];
return s;
}
int main() {
int i, op, x, y;
f >> n >> m;
for (i=1; i<=n; ++i){
f >> x;
adauga(x, i);
}
for (i=1; i<=m; ++i) {
f >> op >> x >> y;
if (!op) adauga(-y, x);
else g << suma(y) - suma(x - 1) << '\n';
}
return 0;
}