import Data.Bits ((.&.))
import Data.List (foldl', sort)
import Data.Text qualified as T
import Data.Text.IO qualified as TIO
maxAnd :: [Int] -> Int
maxAnd (x : xs) = (snd $ foldl' (\(x0, ac) y -> (y, max ac $ x0 .&. y)) (x, 0) xs)
maxAnd _ = 0
calcFunc :: [Int] -> Int
calcFunc [] = 0
calcFunc [_] = 0
calcFunc lst = max (maxAnd lst) (calcFunc $ tail lst)
main :: IO ()
main = do
(total_num : nums) <- (fmap $ read @Int . T.unpack) <$> T.words <$> TIO.getContents
print $ calcFunc $ take 32 $ sort $ take total_num nums
代码可以通过示例,但提交后一个用例也过不了,请大神们帮忙看一看是哪一步出了问题
上面是我的思路和haskell代码实现,请大神们帮忙看看问题出在哪,多谢!