#include <bits/stdc++.h>
using namespace std;
vector<int> bestPrefixSum(vector<int>& arr , int n){
int prev=0 , current;
vector<int> p1(n+1);
for(int i=1;i<=n;i++){
int current=max(prev+arr[i-1],arr[i-1]);
int current1=max(current,0);
prev=current1;
p1[i]=current1;
}
return p1;
}
vector<int> bestSuffixSum(vector<int>& arr , int n){
int aage=0 , current;
vector<int> s1(n+1);
for(int i=n+1;i>0;i--){
int current=max(aage+arr[i-1],arr[i-1]);
int current1=max(current,0);
aage=current1;
s1[i]=current1;
}
return s1;
}
int main() {
vector<int> arr={-1,1,2,3,4,-2,6,-10};
int n=arr.size();
vector<int> pp=bestPrefixSum(arr , n);
vector<int> ss=bestSuffixSum(arr , n);
for(int i=1;i<=n;i++){
cout<<pp[i]<<" ";
}
cout<<endl;
for(int i=1;i<=n;i++){
cout<<ss[i]<<" ";
}
cout<<endl;
for(int i=1;i<n;i++){
cout<<pp[i]<<" "<<ss[i+1]<<endl;
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp2ZWN0b3I8aW50PiBiZXN0UHJlZml4U3VtKHZlY3RvcjxpbnQ+JiBhcnIgLCBpbnQgbil7CglpbnQgcHJldj0wICwgY3VycmVudDsKCXZlY3RvcjxpbnQ+IHAxKG4rMSk7Cglmb3IoaW50IGk9MTtpPD1uO2krKyl7CgkJaW50IGN1cnJlbnQ9bWF4KHByZXYrYXJyW2ktMV0sYXJyW2ktMV0pOwoJCWludCBjdXJyZW50MT1tYXgoY3VycmVudCwwKTsKCQlwcmV2PWN1cnJlbnQxOwoJCXAxW2ldPWN1cnJlbnQxOwoJfQoJcmV0dXJuIHAxOwp9Cgp2ZWN0b3I8aW50PiBiZXN0U3VmZml4U3VtKHZlY3RvcjxpbnQ+JiBhcnIgLCBpbnQgbil7CglpbnQgYWFnZT0wICwgY3VycmVudDsKCXZlY3RvcjxpbnQ+IHMxKG4rMSk7Cglmb3IoaW50IGk9bisxO2k+MDtpLS0pewoJCWludCBjdXJyZW50PW1heChhYWdlK2FycltpLTFdLGFycltpLTFdKTsKCQlpbnQgY3VycmVudDE9bWF4KGN1cnJlbnQsMCk7CgkJYWFnZT1jdXJyZW50MTsKCQlzMVtpXT1jdXJyZW50MTsKCX0KCXJldHVybiBzMTsKfQppbnQgbWFpbigpIHsKCXZlY3RvcjxpbnQ+IGFycj17LTEsMSwyLDMsNCwtMiw2LC0xMH07CglpbnQgbj1hcnIuc2l6ZSgpOwoJdmVjdG9yPGludD4gcHA9YmVzdFByZWZpeFN1bShhcnIgLCBuKTsKCXZlY3RvcjxpbnQ+IHNzPWJlc3RTdWZmaXhTdW0oYXJyICwgbik7Cglmb3IoaW50IGk9MTtpPD1uO2krKyl7CgkJY291dDw8cHBbaV08PCIgICAgICI7Cgl9Cgljb3V0PDxlbmRsOwoJZm9yKGludCBpPTE7aTw9bjtpKyspewoJCWNvdXQ8PHNzW2ldPDwiICAgICAgIjsKCX0KCWNvdXQ8PGVuZGw7Cglmb3IoaW50IGk9MTtpPG47aSsrKXsKCQljb3V0PDxwcFtpXTw8IiAgIjw8c3NbaSsxXTw8ZW5kbDsKCQkKCX0KCXJldHVybiAwOwp9