#include <bits/stdc++.h>
using namespace std;
#define MAX 100005
#define bitscount 32
typedef long long ll;
// swap -> delete one element and/or insert another element
// -> we can delete one element or insert one element or both or do nothing
void solve() {
ll n;
cin >> n;
vector<ll> a(n + 1);
for (ll i = 1; i <= n; i++) cin >> a[i];
ll mx_del = 0, max_pref = 0;
// max subarray sum ending at i if we do nothing
vector<ll> dp_5aliyh(n + 1);
// max subarray sum ending at i if we delete one elment
vector<ll> dp_na7iyh(n + 1);
// max subarray sum ending at i if we add one elment
vector<ll> dp_ziydo(n + 1);
// max subarray sum ending at i if we delete one elment and add one element
vector<ll> dp_lzouz(n + 1);
vector<ll> ans(n + 1);
for (int i = 1; i <= n; i++) {
ans[i] = ans[i - 1];
dp_5aliyh[i] = max(dp_5aliyh[i - 1], 0LL) + a[i];
dp_na7iyh[i] = max(dp_na7iyh[i - 1] + a[i], dp_5aliyh[i] - a[i]);
dp_ziydo[i] = max(dp_ziydo[i - 1] + a[i], a[i] + max_pref);
dp_lzouz[i] = max({dp_lzouz[i - 1] + a[i], dp_ziydo[i - 1], dp_na7iyh[i - 1] + a[i]});
//a[i]+mx_del : if the ith one will be added so take the max subarray that has one element deleted
// ---[abXcd]----M
// if M will be added after skipping some element so take the max subarray that has one element deleted
// -> swap M with X
ans[i] = max({ans[i], dp_5aliyh[i],dp_ziydo[i],dp_na7iyh[i], dp_lzouz[i], a[i] + mx_del});
max_pref = max(max_pref, a[i]);
mx_del = max(mx_del, dp_na7iyh[i]);
}
for (int i = 1; i <= n; i++) {
cout << ans[i] << " ";
}
cout << "\n";
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int t=1;
//cin >> t;
while (t--) solve();
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgTUFYIDEwMDAwNQojZGVmaW5lIGJpdHNjb3VudCAzMgp0eXBlZGVmIGxvbmcgbG9uZyBsbDsKCi8vIHN3YXAgLT4gZGVsZXRlIG9uZSBlbGVtZW50IGFuZC9vciBpbnNlcnQgYW5vdGhlciBlbGVtZW50IAovLyAtPiB3ZSBjYW4gZGVsZXRlIG9uZSBlbGVtZW50ICAgIG9yICBpbnNlcnQgb25lIGVsZW1lbnQgIG9yIGJvdGggIG9yIGRvIG5vdGhpbmcKCnZvaWQgc29sdmUoKSB7CiAgICBsbCBuOwogICAgY2luID4+IG47CiAgICB2ZWN0b3I8bGw+IGEobiArIDEpOwogICAgZm9yIChsbCBpID0gMTsgaSA8PSBuOyBpKyspIGNpbiA+PiBhW2ldOwogICAgbGwgbXhfZGVsID0gMCwgbWF4X3ByZWYgPSAwOwogICAgLy8gbWF4IHN1YmFycmF5IHN1bSBlbmRpbmcgYXQgaSBpZiB3ZSBkbyBub3RoaW5nCiAgICB2ZWN0b3I8bGw+IGRwXzVhbGl5aChuICsgMSk7IAogICAgCiAgICAvLyBtYXggc3ViYXJyYXkgc3VtIGVuZGluZyBhdCBpIGlmIHdlICBkZWxldGUgb25lIGVsbWVudAogICAgdmVjdG9yPGxsPiBkcF9uYTdpeWgobiArIDEpOyAKICAgIAogICAgLy8gbWF4IHN1YmFycmF5IHN1bSBlbmRpbmcgYXQgaSBpZiB3ZSAgYWRkIG9uZSBlbG1lbnQKICAgIHZlY3RvcjxsbD4gZHBfeml5ZG8obiArIDEpOwogICAgCiAgICAvLyBtYXggc3ViYXJyYXkgc3VtIGVuZGluZyBhdCBpIGlmIHdlICBkZWxldGUgb25lIGVsbWVudCBhbmQgYWRkIG9uZSBlbGVtZW50CiAgICB2ZWN0b3I8bGw+IGRwX2x6b3V6KG4gKyAxKTsgCiAgICAKICAgIAoKICAgIHZlY3RvcjxsbD4gYW5zKG4gKyAxKTsKICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IG47IGkrKykgewogICAgICAgIGFuc1tpXSA9IGFuc1tpIC0gMV07CiAgICAgICAgZHBfNWFsaXloW2ldID0gbWF4KGRwXzVhbGl5aFtpIC0gMV0sIDBMTCkgKyBhW2ldOwogICAgICAgIGRwX25hN2l5aFtpXSA9IG1heChkcF9uYTdpeWhbaSAtIDFdICsgYVtpXSwgZHBfNWFsaXloW2ldIC0gYVtpXSk7CiAgICAgICAgZHBfeml5ZG9baV0gPSBtYXgoZHBfeml5ZG9baSAtIDFdICsgYVtpXSwgYVtpXSArIG1heF9wcmVmKTsKICAgICAgICBkcF9sem91eltpXSA9IG1heCh7ZHBfbHpvdXpbaSAtIDFdICsgYVtpXSwgZHBfeml5ZG9baSAtIDFdLCBkcF9uYTdpeWhbaSAtIDFdICsgYVtpXX0pOwogICAgICAgIAogICAgICAgIC8vYVtpXStteF9kZWwgOiBpZiB0aGUgaXRoIG9uZSB3aWxsIGJlIGFkZGVkIHNvIHRha2UgdGhlIG1heCBzdWJhcnJheSB0aGF0IGhhcyBvbmUgZWxlbWVudCBkZWxldGVkCiAgICAgICAgLy8gLS0tW2FiWGNkXS0tLS1NCiAgICAgICAgLy8gaWYgTSB3aWxsIGJlIGFkZGVkIGFmdGVyIHNraXBwaW5nIHNvbWUgZWxlbWVudCBzbyB0YWtlIHRoZSBtYXggc3ViYXJyYXkgdGhhdCBoYXMgb25lIGVsZW1lbnQgZGVsZXRlZAogICAgICAgIC8vIC0+IHN3YXAgTSB3aXRoIFggCiAgICAgICAgYW5zW2ldID0gbWF4KHthbnNbaV0sIGRwXzVhbGl5aFtpXSxkcF96aXlkb1tpXSxkcF9uYTdpeWhbaV0sIGRwX2x6b3V6W2ldLCBhW2ldICsgbXhfZGVsfSk7CiAgICAgICAgbWF4X3ByZWYgPSBtYXgobWF4X3ByZWYsIGFbaV0pOwogICAgICAgIG14X2RlbCA9IG1heChteF9kZWwsIGRwX25hN2l5aFtpXSk7CiAgICB9CiAgICBmb3IgKGludCBpID0gMTsgaSA8PSBuOyBpKyspIHsKICAgICAgICBjb3V0IDw8IGFuc1tpXSA8PCAiICI7CiAgICB9CiAgICBjb3V0IDw8ICJcbiI7Cn0KCmludCBtYWluKCkgewogICAgaW9zOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOwogICAgY2luLnRpZShudWxscHRyKTsKICAgIGludCB0PTE7CiAgICAvL2NpbiA+PiB0OwogICAgd2hpbGUgKHQtLSkgc29sdmUoKTsKICAgIHJldHVybiAwOwp9Cg==