#include <bits/stdc++.h>
using namespace std;
#define int long long
#define pb push_back
int inf = -1e18;
void solve(){
int n, q;
cin >> n >> q;
vector<int> l(n), r(n), a(n);
for(int i = 0; i < n; i ++ ){
cin >> a[i];
r[i] = l[i] = a[i];
}
vector<int> pr{0}, mn{0}, mx{0};
for(int i = 0; i < q; i ++ ) {
int x; cin >> x;
pr.push_back(pr[i] + x);
mn.push_back(min(mn[i], pr[i+1]));
mx.push_back(max(mx[i], pr[i+1]));
};
l[0] = a[0] + mn[q];
for(int i = 1; i < n; i ++ ) {
int li = 0, ri = q;
while(li < ri){
int m = (li + ri) >> 1;
if(a[i-1] + mx[m] < a[i] + mn[m]) li = m + 1;
else ri = m;
};
l[i] = max(a[i] + mn[li], a[i-1] + mx[li-1]);
r[i-1] = min(a[i-1] + mx[li], a[i] + mn[li-1]);
//cout << i << ' ' << li << '\n';
}
r[n-1] = a[n-1] + mx[q];
for(int i = 0; i < n; i ++ ) {
cout << r[i] - l[i] << '\n';
};
};
signed main(){
ios_base::sync_with_stdio();
cin.tie(nullptr); cout.tie(nullptr);
int tt = 1;
//cin >> tt;
while(tt -- ){
solve();
};
};
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |