output_description: Print the minimum number of operations required to achieve the objective.
  
  * * *
input_description: Input is given from Standard Input in the following format:
  
      
      
      N
      c_1 a_1
      c_2 a_2
      :
      c_{2N} a_{2N}
attempt: import sys
  
  input = sys.stdin.readline
  import itertools
  
  N = int(input())
  
  # 各index i と n に対して、左側にn以下のblack/whiteがいくつあるかを数える
  # とりあえず1を入れて、あとでcumsum
  
  B_pos = [0] * (N + 1)
  W_pos = [0] * (N + 1)
  B_cnt = [[0] * (N + 1) for _ in range(2 * N)]
  W_cnt = [[0] * (N + 1) for _ in range(2 * N)]
  
  for i in range(2 * N):
      c, a = input().split()
      a = int(a)  # 0-index化
      if c == "B":
          B_pos[a] = i
      else:
          W_pos[a] = i
  for i in range(1, N + 1):
      B_cnt[B_pos[i]][i] += 1
      W_cnt[W_pos[i]][i] += 1
  # cumsum
  for i in range(1, 2 * N):
      for j in range(N + 1):
          B_cnt[i][j] += B_cnt[i - 1][j]
          W_cnt[i][j] += W_cnt[i - 1][j]
  for i in range(2 * N):
      for j in range(1, N + 1):
          B_cnt[i][j] += B_cnt[i][j - 1]
          W_cnt[i][j] += W_cnt[i][j - 1]
  
  B_cnt
  
  W_cnt
  
  # Bi,Wj まで並べるためのコスト
  dp = [[0] * (N + 1) for _ in range(N + 1)]
  
  INF = 1 << 50
  for b in range(N + 1):
      rng_w = range(N + 1) if b else range(1, N + 1)
      for w in rng_w:
          p = B_pos[b]
          q = W_pos[w]
          x1, x2 = INF, INF
          if b >= 1:
              x1 = dp[b - 1][w] + (p - B_cnt[p][b - 1] - W_cnt[p][w])
          if w >= 1:
              x2 = dp[b][w - 1] + (q - W_cnt[q][w - 1] - B_cnt[q][b])
          dp[b][w] = x1 if x1 < x2 else x2
  
  answer = dp[N][N]
  print(answer)
  
problem_description: Statement
  
  There are 2N balls, N white and N black, arranged in a row. The integers from
  1 through N are written on the white balls, one on each ball, and they are
  also written on the black balls, one on each ball. The integer written on the
  i-th ball from the left (1 ≤ i ≤ 2N) is a_i, and the color of this ball is
  represented by a letter c_i. c_i = `W` represents the ball is white; c_i = `B`
  represents the ball is black.
  
  Takahashi the human wants to achieve the following objective:
  
    * For every pair of integers (i,j) such that 1 ≤ i < j ≤ N, the white ball with i written on it is to the left of the white ball with j written on it.
    * For every pair of integers (i,j) such that 1 ≤ i < j ≤ N, the black ball with i written on it is to the left of the black ball with j written on it.
  
  In order to achieve this, he can perform the following operation:
  
    * Swap two adjacent balls.
  
  Find the minimum number of operations required to achieve the objective.
samples: [{"input": "3\n    B 1\n    W 2\n    B 3\n    W 1\n    W 3\n    B 2", "output": "4\n    \n\nThe objective can be achieved in four operations, for example, as follows:\n\n  * Swap the black 3 and white 1.\n  * Swap the white 1 and white 2.\n  * Swap the black 3 and white 3.\n  * Swap the black 3 and black 2.\n\n* * *"}, {"input": "4\n    B 4\n    W 4\n    B 3\n    W 3\n    B 2\n    W 2\n    B 1\n    W 1", "output": "18\n    \n\n* * *"}, {"input": "9\n    W 3\n    B 1\n    B 4\n    W 1\n    B 5\n    W 9\n    W 2\n    B 6\n    W 5\n    B 3\n    W 8\n    B 9\n    W 7\n    B 2\n    B 8\n    W 4\n    W 6\n    B 7", "output": "41"}]