#include #define endl '\n' using namespace std; const int maxN = 100005; long long n, a[maxN], max_sums_light[maxN], max_sums_dark[maxN], ind_light[maxN], ind_dark[maxN], ans, ans_c, ans_a, ans_b; void generate_sums() { max_sums_light[0] = a[0]; ind_light[0] = 0; max_sums_dark[n - 1] = -a[n - 1]; ind_dark[n] = n - 1; for(int i = 1; i < n; i++) { max_sums_light[i] = max(a[i], max_sums_light[i - 1] + a[i]); if(max_sums_light[i] < 0) { max_sums_light[i] = 0; ind_light[i] = i + 1; } else if(max_sums_light[i] == a[i]) ind_light[i] = i; else ind_light[i] = ind_light[i - 1]; } for(int i = n - 1; i >= 0; i--) { max_sums_dark[i] = max((-a[i]), max_sums_dark[i + 1] + (-a[i])); if(max_sums_dark[i] == (-a[i])) ind_dark[i] = i; else ind_dark[i] = ind_dark[i + 1]; } } int main() { freopen("strip.in", "r", stdin); freopen("strip.out", "w", stdout); ios_base::sync_with_stdio(false); cin.tie(NULL); cin>>n; for(int i = 0; i < n; i++) { cin>>a[i]; } generate_sums(); /*for(int i = 0; i < n; i++) { cout<= 0; i--) { cout< ans) { ans = (c != 0 ? max_sums_light[c - 1] : 0) + max_sums_dark[c]; ans_c = c; ans_a = ind_light[c - 1]; ans_b = ind_dark[c]; } } cout<