#include <bits/stdc++.h>
#pragma comment(linker, "/STACK:60777216")
using namespace std;
int n;
int a[100000 + 7];
int dp_p[100000 + 7][2];
int dp_s[100000 + 7][2];
int main() {
  scanf("%d", &n);
  for (int i = 0; i < n; ++i) scanf("%d", a + i);
  dp_p[0][0] = a[0];
  dp_p[0][1] = -a[0];
  for (int i = 1; i < n; ++i) {
    dp_p[i][0] = a[i] + dp_p[i - 1][0];
    dp_p[i][1] = a[i] - dp_p[i - 1][0];
    if (dp_p[i][1] < -a[i] - dp_p[i - 1][0]) {
      dp_p[i][1] = -a[i] - dp_p[i - 1][0];
    }
    if (dp_p[i][1] < a[i] + dp_p[i - 1][1]) {
      dp_p[i][1] = a[i] + dp_p[i - 1][1];
    }
  }
  dp_s[n - 1][0] = a[n - 1];
  dp_s[n - 1][1] = -a[n - 1];
  for (int i = n - 2; i >= 0; --i) {
    dp_s[i][0] = a[i] + dp_s[i + 1][0];
    dp_s[i][1] = a[i] - dp_s[i + 1][0];
    if (dp_s[i][1] < -a[i] - dp_s[i + 1][0]) {
      dp_s[i][1] = -a[i] - dp_s[i + 1][0];
    }
    if (dp_s[i][1] < a[i] + dp_s[i + 1][1]) {
      dp_s[i][1] = a[i] + dp_s[i + 1][1];
    }
  }
  int ans = max(dp_p[n - 1][1], dp_p[n - 1][0]);
  if (ans < max(dp_s[0][0], dp_s[0][1])) {
    ans = max(dp_s[0][0], dp_s[0][1]);
  }
  for (int i = 1; i < n; ++i) {
    int ss = max(dp_s[i][0], dp_s[i][1]);
    int pp = max(dp_p[i - 1][0], dp_p[i - 1][1]);
    ans = max(ans, pp + ss);
  }
  printf("%d\n", ans);
  return 0;
}
