import Data.List

main :: IO ()
main = do
  _ <- getLine
  vs <- map read . words <$> getLine
  print $ solve vs

solve :: [Int] -> Int
solve vs = solve' (count as) (count bs)
  where
    (as, bs) = deal vs

deal :: [Int] -> ([Int], [Int])
deal [] = ([], [])
deal (x:y:zs) = (x:xs, y:ys)
  where
    (xs, ys) = deal zs

solve' :: [(Int, Int)] -> [(Int, Int)] -> Int
solve' [(ka0, va0)] [(kb0, vb0)]
  | ka0 /= kb0 = 0
  | otherwise = va0 `min` vb0
solve' [(ka0, va0)] ((kb0, vb0):(kb1, vb1):bs)
  | ka0 == kb0 = vb0 + sum (map snd bs)
  | otherwise = vb1 + sum (map snd bs)
solve' ((ka0, va0):(ka1, va1):as) [(kb0, vb0)]
  | ka0 == kb0 = va0 + sum (map snd as)
  | otherwise = va1 + sum (map snd as)
solve' ((ka0, va0):(ka1, va1):as) ((kb0, vb0):(kb1, vb1):bs)
  | ka0 /= kb0 = va1 + sum (map snd as) + vb1 + sum (map snd bs)
  | va0 + vb1 > va1 + vb0 = va1 + sum (map snd as) + vb0 + sum (map snd bs)
  | otherwise = va1 + sum (map snd as) + vb1 + sum (map snd bs)

count :: [Int] -> [(Int, Int)]
count = reverse . sortOn snd . map (\xs -> (head xs, length xs)) . group . sort
