import qualified Data.Text as T
import qualified Data.Text.IO as T
import qualified Data.Text.Read as T
import Data.List (sortBy)
import Data.Function (on)

main :: IO ()
main = do
  n <- unsafeSignedDecimal <$> T.getLine :: IO Int
  abs <- sequence . replicate n $ unsafeListToPair . map unsafeSignedDecimal . T.words <$> T.getLine :: IO [(Int, Int)]
  let
    abs' = sortBy (compare `on` snd) abs
    r = snd . foldl step (0, True) $ abs'
      where
        step (_, False) _ = (undefined, False)
        step (c, _) (a, b) = let c' = c + a in if c' <= b then (c', True) else (undefined, False)
  putStrLn $ if r then "Yes" else "No"

unsafeListToPair :: [Int] -> (Int, Int)
unsafeListToPair (x : y : _) = (x, y)

unsafeSignedDecimal :: T.Text -> Int
unsafeSignedDecimal s = case T.signed T.decimal s of
  Right (n, _) -> n
