canTalk :: Int -> Int -> Int -> Int -> Bool
canTalk a b c d = canTalkDirectly || canTalkIndirectly
  where canTalkDirectly   = abs (a - c) <= d
        canTalkIndirectly = abs (a - b) <= d && abs (b - c) <= d

main :: IO ()
main = do
  [a, b, c, d] <- map read . words <$> getLine
  putStrLn $ if canTalk a b c d then "Yes" else "No"