#include <bits/stdc++.h>
using namespace std;
#define int long long
#define FOR(i,a,b) for (int i = (a); i < (b); ++i)
#define pb push_back
#define all(a) a.begin(), a.end()
#define endl "\n"
void printVector(vector<int> a){
for (auto x: a) cout << x << " ";
cout << endl;
}
void solve(){
int n, q; cin >> n >> q;
vector<int> o(n+1);
FOR(i,1,n+1) cin >> o[i];
vector<int> a(q+1), b(q+1);
int curr = 0;
vector<int> u(q+1);
FOR(i,1,q+1) cin >> u[i];
FOR(i,1,q+1){
curr += u[i];
a[i] = max(a[i-1], curr);
b[i] = max(b[i-1], -curr);
}
vector<int> c(q+2);
FOR(i,1,q+1) c[i] = a[i]+b[i];
c[q+1] = 1e18;
vector<int> ans(n+1);
// printVector(a);
// printVector(b);
FOR(i,1,n){
int d = o[i+1]-o[i]-1;
int j = (upper_bound(all(c), d) - c.begin());
ans[i] += a[j-1];
ans[i+1] += b[j-1];
if (j == q+1) continue;
if (b[j] != b[j-1]){
ans[i+1] += d-a[j-1]-b[j-1]+1;
}else{
ans[i] += d-a[j-1]-b[j-1]+1;
}
}
ans[1] += b[q];
ans[n] += a[q];
FOR(i,1,n+1) cout << ans[i] << endl;
}
int32_t main(){
ios::sync_with_stdio(false);cin.tie(nullptr);
int t = 1; // cin >> t;
while (t--) solve();
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |