結果
問題 | No.184 たのしい排他的論理和(HARD) |
ユーザー | e_gracilis |
提出日時 | 2015-06-18 15:29:40 |
言語 | Haskell (9.8.2) |
結果 |
CE
(最新)
AC
(最初)
|
実行時間 | - |
コード長 | 869 bytes |
コンパイル時間 | 282 ms |
コンパイル使用メモリ | 155,520 KB |
最終ジャッジ日時 | 2024-11-15 04:42:57 |
合計ジャッジ時間 | 1,048 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
コンパイルエラー時のメッセージ・ソースコードは、提出者また管理者しか表示できないようにしております。(リジャッジ後のコンパイルエラーは公開されます)
ただし、clay言語の場合は開発者のデバッグのため、公開されます。
ただし、clay言語の場合は開発者のデバッグのため、公開されます。
コンパイルメッセージ
Loaded package environment from /home/judge/.ghc/x86_64-linux-9.8.2/environments/default [1 of 2] Compiling Main ( Main.hs, Main.o ) Main.hs:13:41: error: [GHC-87543] Ambiguous occurrence ‘B.getLine’. It could refer to either ‘B.getLine’, imported qualified from ‘Data.ByteString.Char8’ at Main.hs:5:1-43, or ‘B.getLine’, imported qualified from ‘Data.ByteString’ at Main.hs:4:1-37. | 13 | getInt = fst . fromJust . B.readInt <$> B.getLine | ^^^^^^^^^ Main.hs:15:60: error: [GHC-87543] Ambiguous occurrence ‘B.getLine’. It could refer to either ‘B.getLine’, imported qualified from ‘Data.ByteString.Char8’ at Main.hs:5:1-43, or ‘B.getLine’, imported qualified from ‘Data.ByteString’ at Main.hs:4:1-37. | 15 | getInts = map (fst . fromJust . B.readInt) <$> B.words <$> B.getLine | ^^^^^^^^^
ソースコード
module Main (main) where import Data.Bits import qualified Data.ByteString as B import qualified Data.ByteString.Char8 as B import Control.Applicative import Data.Maybe(fromJust) import Data.List import Debug.Trace default (Int) getInt :: IO Int getInt = fst . fromJust . B.readInt <$> B.getLine getInts :: IO [Int] getInts = map (fst . fromJust . B.readInt) <$> B.words <$> B.getLine main :: IO () main = do _n <- getInt as <- getInts print $ solve as solve :: [Int] -> Int solve = (2^) . length . sweep 60 sweep :: Int -> [Int] -> [Int] sweep (-1) xs = xs sweep b xs = case find (`testBit` b) xs of Nothing -> sweep (b-1) xs Just x -> let xs' = map (f x) xs xs'' = filter (/= 0) xs' in x: sweep (b-1) xs'' where f :: Int -> Int -> Int f x y = if 0 == (y .&. (1 `shiftL` b)) then y else y `xor` x