module Main where import Data.List (find) import Data.Maybe (fromJust) import qualified Data.Set as Set import Input main :: IO () main = do input <- map read <$> getInput 1 :: IO [Int] let num1 = fromJust (find ((`Set.member` Set.fromList input) . (2020 -)) input) print (num1 * (2020 - num1)) let pair = snd (fromJust (find ((`Set.member` Set.fromList input) . (2020 -) . fst) [(a + b, (a, b)) | a <- input, b <- input])) print (fst pair * snd pair * (2020 - fst pair - snd pair))