Pagini recente » Cod sursa (job #2355302) | Cod sursa (job #583806) | Cod sursa (job #188614) | Cod sursa (job #23009) | Cod sursa (job #191851)
Cod sursa(job #191851)
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
int aib[15001], n, m, x, y, z, s1, s2, k, i;
ifstream f1("datorii.in");
ofstream f2("datorii.out");
f1 >> n >> m;
for (i = 1; i <= n; ++i) {
f1 >> x;
k = i;
while (k <= n) {
aib[k] += x;
k += (~k + 1) & k;
}
}
for (i = 1; i <= m; ++i) {
f1 >> x >> y >> z;
if (x) { //suma
k = y - 1;
s1 = s2 = 0;
while (k > 0) {
s1 += aib[k];
k = ((~k + 1) & k) ^ k;
}
k = z;
while (k > 0) {
s2 += aib[k];
k = ((~k + 1) & k) ^ k;
}
f2 << s2 - s1 << endl;
}
else { //achitare
k = y;
while (k <= n) {
aib[k] -= z;
k += (~k + 1) & k;
}
}
}
f1.close();
f2.close();
return 0;
}