#include <bits/stdc++.h>
using namespace std;
using ll = long long;
int main() {
int n, q;
cin >> n >> q;
vector<ll> a(n);
for (auto& i : a) cin >> i;
vector<ll> res(n);
vector<ll> l(n), r(n);
for (int i = 0; i < n; ++i) {
l[i] = r[i] = a[i];
}
for (int i = 0; i < q; ++i) {
ll x;
cin >> x;
//~ cerr << "Wind x = " << x << "\n";
if (x < 0) {
x = -x;
for (int i = n - 1; i > 0; --i) {
ll till = max(a[i] - x, r[i - 1]);
ll add = max(0LL, l[i] - till);
res[i] += add;
l[i] = min(l[i], till);
a[i] -= x;
}
ll till = a[0] - x;
ll add = max(0LL, l[0] - till);
res[0] += add;
l[0] = min(l[0], till);
a[0] -= x;
} else {
for (int i = 0; i < n - 1; ++i) {
ll till = min(a[i] + x, l[i + 1]);
ll add = max(0LL, till - r[i]);
res[i] += add;
r[i] = max(r[i], till);
a[i] += x;
}
ll till = a[n - 1] + x;
ll add = max(0LL, till - r[n - 1]);
res[n - 1] += add;
r[n - 1] = max(r[n - 1], till);
a[n - 1] += x;
}
//~ for (int i = 0; i < n; ++i) {
//~ cerr << i << " = " << " l = " << l[i] << " , r = " << r[i] << " , ";
//~ cerr << " w = " << res[i] << " , pos = " << a[i] << "\n";
//~ }
//~ cerr << endl;
}
for (auto& i : res) {
cout << i << "\n";
}
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |