Problem:
Score : 100 points

Problem Statement

AtCoDeer has three cards, one red, one green and one blue.

An integer between 1 and 9 (inclusive) is written on each card: r on the red card, g on the green card and b on the blue card.

We will arrange the cards in the order red, green and blue from left to right, and read them as a three-digit integer.

Is this integer a multiple of 4?

Constraints

1 ≤ r, g, b ≤ 9

Input

Input is given from Standard Input in the following format:

r g b

Output

If the three-digit integer is a multiple of 4, print YES (case-sensitive); otherwise, print NO.

Sample Input 1

4 3 2

Sample Output 1

YES

432 is a multiple of 4, and thus YES should be printed.

Sample Input 2

2 3 4

Sample Output 2

NO

234 is not a multiple of 4, and thus NO should be printed.

Solution in Haskell (GHC 7.10.3) (judge verdict: Accepted)

import qualified Data.ByteString.Char8 as BS
import Data.Maybe (fromJust)
import Data.List
import Control.Monad

data Rgb = Rgb {red :: Int, green :: Int, blue :: Int}

toYesNo :: Bool -> String
toYesNo True = "YES"
toYesNo _ = "NO"

toNum :: Rgb -> Int
toNum rgb = (red rgb) * 100 + (green rgb) * 10 + (blue rgb)

solve :: Rgb -> String
solve = toYesNo . ((==) 0) . (flip mod 4) . toNum

main :: IO ()
main = do
    [r, g, b] <- map (fst . fromJust . BS.readInt) . BS.words <$> BS.getLine
    let rgb = Rgb {red=r, green=g, blue=b}
    putStrLn $ solve rgb