Pagini recente » Cod sursa (job #2814133) | Cod sursa (job #1355311) | Cod sursa (job #105121) | Cod sursa (job #1621474) | Cod sursa (job #2378384)
#include <bits/stdc++.h>
#define N 15005
using namespace std;
ifstream fin ("datorii.in");
ofstream fout ("datorii.out");
int aib[N];
void plata (int idx, int val, int n)
{
while (idx <= n) {
aib[idx] -= val;
if (aib[idx] < 0) aib[idx] = 0;
idx += (idx & (-idx));
}
}
void add (int idx, int val, int n)
{
while (idx <= n) {
aib[idx] += val;
idx += (idx & (-idx));
}
}
int read (int idx)
{
int sum = 0;
while (idx > 0) {
sum += aib[idx];
idx -= (idx & (-idx));
}
return sum;
}
int main()
{
int n, m;
fin >> n >> m;
int a, b, c;
for (int i = 1; i <= n; i ++) {
fin >> a;
add(i, a, n);
}
for (int i = 1; i <= n; i ++) fout << read(i) << " ";
fout << "\n";
for (int i = 1; i <= n; i ++) {
fin >> a >> b >> c;
if (a == 0) {
plata(b, c, n);
for (int i = 1; i <= n; i ++) fout << read(i) << " ";
fout << "\n";
}
else fout << read(c) - read(b - 1) << "\n";
}
return 0;
}