29 lines
678 B
Haskell
29 lines
678 B
Haskell
{-# OPTIONS_GHC -Wno-incomplete-patterns #-}
|
|
|
|
scoreLose = 0
|
|
scoreDraw = 3
|
|
scoreWin = 6
|
|
|
|
resolveMatchScore 'A' 'Z' = scoreLose
|
|
resolveMatchScore 'B' 'X' = scoreLose
|
|
resolveMatchScore 'C' 'Y' = scoreLose
|
|
|
|
resolveMatchScore 'A' 'Y' = scoreWin
|
|
resolveMatchScore 'B' 'Z' = scoreWin
|
|
resolveMatchScore 'C' 'X' = scoreWin
|
|
|
|
resolveMatchScore 'A' 'X' = scoreDraw
|
|
resolveMatchScore 'B' 'Y' = scoreDraw
|
|
resolveMatchScore 'C' 'Z' = scoreDraw
|
|
|
|
resolveOptionScore 'X' = 1
|
|
resolveOptionScore 'Y' = 2
|
|
resolveOptionScore 'Z' = 3
|
|
|
|
getScore a b = resolveMatchScore a b + resolveOptionScore b
|
|
|
|
main = interact $
|
|
show
|
|
. sum
|
|
. map ((\l -> getScore (l !! 0 !! 0) (l !! 1 !! 0)) . words)
|
|
. lines |