2017-12-12 08:12:51 +00:00
|
|
|
import Data.List (sort)
|
|
|
|
import Data.Set (toAscList, fromList)
|
2017-12-12 17:28:32 +00:00
|
|
|
|
|
|
|
isPassphraseValid :: [String] -> Bool
|
|
|
|
isPassphraseValid ws = sort ws == (toAscList . fromList) ws
|
|
|
|
|
|
|
|
main :: IO ()
|
|
|
|
main = do
|
2017-12-12 08:12:51 +00:00
|
|
|
passphrases <- fmap (map words . lines) $ readFile "4.txt"
|
|
|
|
let valids = sum $ map (fromEnum . isPassphraseValid) passphrases
|
|
|
|
let stillValids = sum $ map (fromEnum . isPassphraseValid . (map sort)) passphrases
|
2017-12-12 17:28:32 +00:00
|
|
|
print $ valids
|
|
|
|
print $ stillValids
|