Problem:
Score : 100 points

Problem Statement

Takahashi wants to print a document with N pages double-sided, where two pages of data can be printed on one sheet of paper.

At least how many sheets of paper does he need?

Constraints

N is an integer.

1 \leq N \leq 100

Input

Input is given from Standard Input in the following format:

N

Output

Print the answer.

Sample Input 1

5

Sample Output 1

3

By printing the 1-st, 2-nd pages on the 1-st sheet, 3-rd and 4-th pages on the 2-nd sheet, and 5-th page on the 3-rd sheet, we can print all the data on 3 sheets of paper.

Sample Input 2

2

Sample Output 2

1

Sample Input 3

100

Sample Output 3

50

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

module Main where

import           Control.Monad
import           Data.Maybe
import qualified Data.ByteString.Char8         as BS
import qualified Data.Vector                   as V
import qualified Data.Vector.Mutable           as VM
import qualified Data.Vector.Unboxed           as VU
import qualified Data.Vector.Unboxed.Mutable   as VUM

main :: IO ()
main = do
    n <- fst <$> (BS.getContents >>= justifyForce . BS.readInt)
    putStrLn $ show $ (n + 1) `div` 2

justifyForce :: Maybe a -> IO a
justifyForce (Just x) = pure x
justifyForce Nothing = fail "poyo"

split :: BS.ByteString -> [BS.ByteString]
split = filter (\s -> BS.length s > 0) . BS.splitWith isDelim

isDelim :: Char -> Bool
isDelim c = c == ' ' || c == '\n'