output_description: Print the minimal cost in a line.
input_description: In the first line, an integer $n$ is given. In the second line, $n$ integers
  $w_i (i = 0, 1, 2, ... n-1)$ separated by space characters are given.
attempt: def partition(A, l, r):
      p = A[r]
      j = l - 1
      for i in range(l, r):
          if A[i] <= p:
              j += 1
              A[j], A[i] = A[i], A[j]
      j += 1
      A[j], A[r] = A[r], A[j]
      return j
  
  
  def quick_sort(A, l, r):
      if l < r:
          p = partition(A, l, r)
          quick_sort(A, l, p - 1)
          quick_sort(A, p + 1, r)
  
  
  def minimum_cost_sort(A):
      cost = 0
      B = A[:]
      quick_sort(A, 0, len(A) - 1)
      for i in range(len(A) // 2):
          if A[i] != B[i]:
              cost += A[i] + B[i]
      return cost
  
  
  N = int(input())
  A = list(map(int, input().split()))
  print(minimum_cost_sort(A))
  
problem_description: Minimum Cost Sort
  
  You are given $n$ integers $w_i (i = 0, 1, ..., n-1)$ to be sorted in
  ascending order. You can swap two integers $w_i$ and $w_j$. Each swap
  operation has a cost, which is the sum of the two integers $w_i + w_j$. You
  can perform the operations any number of times.
  
  Write a program which reports the minimal total cost to sort the given
  integers.
samples: [{"input": "5\n    1 5 3 4 2", "output": "7"}, {"input": "4\n    4 3 2 1", "output": "10"}]