toysolver-0.2.0: samples/programs/htc/htc.hs
{-# LANGUAGE ScopedTypeVariables #-}
{-# OPTIONS_GHC -Wall #-}
module Main where
import Control.Monad
import Data.List
import qualified Data.IntSet as IntSet
import System.Environment
import qualified ToySolver.Combinatorial.HittingSet.Simple as HittingSet
main :: IO ()
main = do
args <- getArgs
case args of
[fname] -> do
s <- readFile fname
let xss = filter (not . IntSet.null) . fmap (IntSet.fromList . fmap read . words) . lines $ s
forM_ (HittingSet.minimalHittingSets xss) $ \ys -> do
putStrLn $ intercalate " " $ map show $ IntSet.toList ys