import Data.List (sort, group)
import Control.Applicative
import Control.Monad
import qualified Data.Map as M

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

-- |
--
-- >>> solve 3 [1,2,2]
-- True
--
-- >>> solve 3 [1,1,2]
-- False
solve :: Int -> [Int] -> Bool
solve n as
  | all (== (n-1)) as   = True
  | any (\x -> x /= k && x /= (k-1)) as = False
  | otherwise = (\x -> x*2 <= n) $ length $ filter (== (k-1)) as
  where
    k = maximum as
