import Data.List

solve :: [[Int]] -> Bool
solve dat
  | length dat == 1 = let [xs] = dat in length xs >= 2 * head xs || length xs == head xs + 1
  | otherwise =
      let
        [xs,ys] = dat
        k = head ys
      in
        k - length xs > 0 && 2 * (k - length xs) <= length ys


main :: IO ()
main = do
  n <- readLn :: IO Int
  as <- group . sort . map read . words <$> getLine :: IO [[Int]]
  
  putStrLn $ if solve as then "Yes" else "No"
  
