import Data.List import Control.Applicative data Osoba = Mąż Int | Żona Int deriving (Show) konfiguracje :: Int -> [[Osoba]] konfiguracje n = filter (\xs -> all warunek (zip xs (tail xs))) wszystkie where wszystkie = permutations ([ Mąż, Żona ] <*> [1..n]) warunek (Mąż n, Żona m) = n /= m warunek (Żona n, Mąż m) = n /= m warunek _ = True main = print (map (length . konfiguracje) [1..5])