output_description: Print the minimum total cost required to sort p in ascending order.
  
  * * *
input_description: Input is given from Standard Input in the following format:
  
      
      
      N A B
      p_1 \cdots p_N
attempt: def solve(p):
      print(p)
      if len(p) < 2:
          return 0
      i = p.index(max(p))
      return min(solve(p[:i]) + (len(p) - 1 - i) * b, solve(p[:i] + p[i + 1 :]) + a)
  
  
  n, a, b, *p = map(int, open(0).read().split())
  print(solve(p))
  
problem_description: Statement
  
  You are given a permutation p = (p_1, \ldots, p_N) of \\{ 1, \ldots, N \\}.
  You can perform the following two kinds of operations repeatedly in any order:
  
    * Pay a cost A. Choose integers l and r (1 \leq l < r \leq N), and shift (p_l, \ldots, p_r) to the left by one. That is, replace p_l, p_{l + 1}, \ldots, p_{r - 1}, p_r with p_{l + 1}, p_{l + 2}, \ldots, p_r, p_l, respectively.
    * Pay a cost B. Choose integers l and r (1 \leq l < r \leq N), and shift (p_l, \ldots, p_r) to the right by one. That is, replace p_l, p_{l + 1}, \ldots, p_{r - 1}, p_r with p_r, p_l, \ldots, p_{r - 2}, p_{r - 1}, respectively.
  
  Find the minimum total cost required to sort p in ascending order.
samples: [{"input": "3 20 30\n    3 1 2", "output": "20\n    \n\nShifting (p_1, p_2, p_3) to the left by one results in p = (1, 2, 3).\n\n* * *"}, {"input": "4 20 30\n    4 2 3 1", "output": "50\n    \n\nOne possible sequence of operations is as follows:\n\n  * Shift (p_1, p_2, p_3, p_4) to the left by one. Now we have p = (2, 3, 1, 4).\n  * Shift (p_1, p_2, p_3) to the right by one. Now we have p = (1, 2, 3, 4).\n\nHere, the total cost is 20 + 30 = 50.\n\n* * *"}, {"input": "1 10 10\n    1", "output": "0\n    \n\n* * *"}, {"input": "4 1000000000 1000000000\n    4 3 2 1", "output": "3000000000\n    \n\n* * *"}, {"input": "9 40 50\n    5 3 4 7 6 1 2 9 8", "output": "220"}]