import Control.Applicative import Control.Monad import Data.List import System.IO uncomma :: String -> [String] uncomma = filter ((/= ',') . head) . groupBy (\a b -> (a == ',') == (b == ',')) main = do names <- sort . uncomma . filter (not . (`elem` "\"\r\n")) <$> readFile "p022_names.txt" print $ sum $ zipWith (*) (map (sum . map (\c -> fromEnum c - fromEnum 'A' + 1)) names) [1..]