comefrom: <awangdev>Maximum Subarray II_2.java
code: public int maxTwoSubArrays(List<Integer> nums) {
          if (nums == null || nums.size() == 0) {
              return 0;
          }
          int n = nums.size();
          int[] dpLeft = new int[2];
          int[] dpRight = new int[2];
          dpLeft[0] = 0;
          dpRight[n % 2] = 0;
  
          int[] maxLeft = new int[n + 1];
          int[] maxRight = new int[n + 1];
          maxLeft[0] = Integer.MIN_VALUE;
          maxRight[n] = Integer.MIN_VALUE;
          
          for (int i = 1; i <= n; i++) {
              dpLeft[i % 2] = Math.max(dpLeft[(i - 1) % 2] + nums.get(i - 1), nums.get(i - 1));
              maxLeft[i] = Math.max(maxLeft[i - 1], dpLeft[i % 2]);
          }
  
          for (int j = n - 1; j >= 0; j--) {
              dpRight[j % 2] = Math.max(dpRight[(j + 1) % 2] + nums.get(j), nums.get(j));
              maxRight[j] = Math.max(maxRight[j + 1], dpRight[j % 2]);
          }
          
          int max = Integer.MIN_VALUE;
          for (int i = 1; i < n; i++) {
              max = Math.max(max, maxLeft[i] + maxRight[i]);
          }
          
          return max;
      }
masked: public int sample_funcname ( List < Integer > var_0 ) {
    if ( var_0 == null || var_0 . size ( ) == 0 ) {
      return 0 ;
    }
    int var_1 = var_0 . size ( ) ;
    int [ ] var_2 = new int [ 2 ] ;
    int [ ] var_3 = new int [ 2 ] ;
    var_2 [ 0 ] = 0 ;
    var_3 [ var_1 % 2 ] = 0 ;
    int [ ] var_4 = new int [ var_1 + 1 ] ;
    int [ ] var_5 = new int [ var_1 + 1 ] ;
    var_4 [ 0 ] = Integer . MIN_VALUE ;
    var_5 [ var_1 ] = Integer . MIN_VALUE ;
    for ( int var_6 = 1 ;
    var_6 <= var_1 ;
    var_6 ++ ) {
      var_2 [ var_6 % 2 ] = Math . max ( var_2 [ ( var_6 - 1 ) % 2 ] + var_0 . get ( var_6 - 1 ) , var_0 . get ( var_6 - 1 ) ) ;
      var_4 [ var_6 ] = Math . max ( var_4 [ var_6 - 1 ] , var_2 [ var_6 % 2 ] ) ;
    }
    for ( int var_7 = var_1 - 1 ;
    var_7 >= 0 ;
    var_7 -- ) {
      var_3 [ var_7 % 2 ] = Math . max ( var_3 [ ( var_7 + 1 ) % 2 ] + var_0 . get ( var_7 ) , var_0 . get ( var_7 ) ) ;
      var_5 [ var_7 ] = Math . max ( var_5 [ var_7 + 1 ] , var_3 [ var_7 % 2 ] ) ;
    }
    int max = Integer . MIN_VALUE ;
    for ( int var_6 = 1 ;
    var_6 < var_1 ;
    var_6 ++ ) {
      max = Math . max ( max , var_4 [ var_6 ] + var_5 [ var_6 ] ) ;
    }
    return max ;
  }
  