fork(2) download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. // Speed
  4. #define fast_io ios::sync_with_stdio(0); cin.tie(0); cout.tie(0)
  5. // Typedefs
  6. #define int long long
  7. #define pb push_back
  8. #define ff first
  9. #define ss second
  10. #define all(x) (x).begin(), (x).end()
  11. #define rall(x) (x).rbegin(), (x).rend()
  12. #define sz(x) ((int)(x).size())
  13. #define endl '\n'
  14. #define yes cout << "yes\n"
  15. #define no cout << "no\n"
  16. // Loops
  17. #define rep(i,a,b) for(int i=a;i<b;++i)
  18. #define per(i,a,b) for(int i=b-1;i>=a;--i)
  19. #define each(x, a) for (auto& x : a)
  20. // Consts
  21. const int INF = 1e18;
  22. const int MOD = 1e9+7;
  23. const int N = 2e5 + 5;
  24.  
  25. // Logic
  26. void solve() {
  27. int n;
  28. cin >> n;
  29. vector<int> a(n);
  30. each(x, a) cin >> x;
  31.  
  32. vector<int> pref_abs(n, 0);
  33. pref_abs[0] = abs(a[0]);
  34. rep(i, 1, n) pref_abs[i] = pref_abs[i-1] + abs(a[i]);
  35.  
  36. vector<int> suff_sum(n + 1, 0);
  37. per(i, 0, n) suff_sum[i] = suff_sum[i+1] + a[i];
  38.  
  39. int ans = -INF;
  40.  
  41. rep(k, 0, n) {
  42. int cur = 0;
  43. if (k == 0) {
  44. cur = -suff_sum[1];
  45. } else {
  46. cur = a[0];
  47. if (k > 1) {
  48. cur += (pref_abs[k-1] - pref_abs[0]);
  49. }
  50. cur -= suff_sum[k+1];
  51. }
  52. ans = max(ans, cur);
  53. }
  54.  
  55. cout << ans << endl;
  56. }
  57.  
  58. // Main
  59. int32_t main() {
  60. fast_io;
  61.  
  62. int t;
  63. cin >> t;
  64. while (t--) {
  65. solve();
  66. }
  67.  
  68. return 0;
  69. }
Success #stdin #stdout 0.01s 5324KB
stdin
7
2
2 -3
4
1 4 3 4
4
-4 2 3 -6
5
-2 -3 4 10 -9
5
-12345678 -1000000000 -999999999 1000000000 -999999999
2
-7 1
5
7 -6 -1 -8 -8
stdout
3
8
4
15
2987654321
-1
29