output_description: * In the first line, print the maximum possible value of the final element in the sequence.
    * In the second line, print the number of operations that you perform.
    * In the (2+i)-th line, if the element chosen in the i-th operation is the x-th element from the left in the sequence at that moment, print x.
    * If there are multiple ways to achieve the maximum value of the final element, any of them may be printed.
  
  * * *
input_description: Input is given from Standard Input in the following format:
  
      
      
      N
      a_1 a_2 ... a_N
attempt: n = int(input())
  a = list(map(int, input().split()))
  ans1 = sum([a[i] for i in range(0, n, 2) if a[i] > 0])
  ans2 = sum([a[i] for i in range(1, n, 2) if a[i] > 0])
  if max(ans1, ans2) == 0:
      print(0)
      print(n)
      for _ in range(n):
          print(1)
  
  elif ans1 >= ans2:
      print(ans1)
      op = []
      left = 0
      while a[left] <= 0:
          left += 2
  
      right = True
      in_seg = False
      for i in range(n - 1, -1, -1):
          if right:
              if i % 2 == 1 or a[i] <= 0:
                  op.append(i + 1)
              else:
                  right = False
          elif i < left:
              op += [1] * (i + 1)
              break
          else:
              if in_seg == False and i % 2 == 1:
                  in_seg = True
                  seg_right = i
              elif i % 2 == 0 and a[i] > 0:
                  in_seg = False
                  op += list(range((i + seg_right + 3) // 2, i + 1, -1))
  
      print(len(op))
      print(*op, sep="\n")
  
  else:
      print(ans2)
      op = []
      left = 1
      while a[left] <= 0:
          left += 2
  
      right = True
      in_seg = False
      for i in range(n - 1, -1, -1):
          if right:
              if i % 2 == 0 or a[i] <= 0:
                  op.append(i + 1)
              else:
                  right = False
          elif i < left:
              op += [1] * (i + 1)
              break
          else:
              if in_seg == False and i % 2 == 0:
                  in_seg = True
                  seg_right = i
              elif i % 2 == 1 and a[i] > 0:
                  in_seg = False
                  op += list(range((i + seg_right + 3) // 2, i + 1, -1))
  
      print(len(op))
      print(*op, sep="\n")
  
problem_description: Statement
  
  You have an integer sequence of length N: a_1, a_2, ..., a_N.
  
  You repeatedly perform the following operation until the length of the
  sequence becomes 1:
  
    * First, choose an element of the sequence.
    * If that element is at either end of the sequence, delete the element.
    * If that element is not at either end of the sequence, replace the element with the sum of the two elements that are adjacent to it. Then, delete those two elements.
  
  You would like to maximize the final element that remains in the sequence.
  
  Find the maximum possible value of the final element, and the way to achieve
  it.
samples: [{"input": "5\n    1 4 3 7 5", "output": "11\n    3\n    1\n    4\n    2\n    \n\nThe sequence would change as follows:\n\n  * After the first operation: 4, 3, 7, 5\n  * After the second operation: 4, 3, 7\n  * After the third operation: 11(4+7)\n\n* * *"}, {"input": "4\n    100 100 -1 100", "output": "200\n    2\n    3\n    1\n    \n\n  * After the first operation: 100, 200(100+100)\n  * After the second operation: 200\n\n* * *"}, {"input": "6\n    -1 -2 -3 1 2 3", "output": "4\n    3\n    2\n    1\n    2\n    \n\n  * After the first operation: -4, 1, 2, 3\n  * After the second operation: 1, 2, 3\n  * After the third operation: 4\n\n* * *"}, {"input": "9\n    1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000", "output": "5000000000\n    4\n    2\n    2\n    2\n    2"}]