f:: Int->Int->Int->Int->String
f a b c d
    |a-d<=c && c<=a+d="Yes"
    |(a-d<=b && b<=a+d) && (b-d<=c && c<=b+d)="Yes"
    |otherwise="No"

main = do
      x<-getLine
      let (a:b:c:d:[])=map read (words x)::[Int]
      putStrLn $ f a b c d