結果

問題 No.24 数当てゲーム
ユーザー highdhighd
提出日時 2016-08-20 19:19:33
言語 Haskell
(9.8.2)
結果
CE  
(最新)
AC  
(最初)
実行時間 -
コード長 1,058 bytes
コンパイル時間 3,158 ms
コンパイル使用メモリ 169,828 KB
最終ジャッジ日時 2023-08-07 17:17:22
合計ジャッジ時間 3,525 ms
ジャッジサーバーID
(参考情報)
judge14 / judge11
このコードへのチャレンジ(β)
コンパイルエラー時のメッセージ・ソースコードは、提出者また管理者しか表示できないようにしております。(リジャッジ後のコンパイルエラーは公開されます)
ただし、clay言語の場合は開発者のデバッグのため、公開されます。

コンパイルメッセージ
Loaded package environment from /home/judge/.ghc/x86_64-linux-9.6.1/environments/default
[1 of 2] Compiling Main             ( Main.hs, Main.o )

Main.hs:13:10: error: [GHC-59692]
    Duplicate instance declarations:
      instance Monoid a => Monoid (IO a) -- Defined at Main.hs:13:10
      instance Monoid a => Monoid (IO a) -- Defined in ‘GHC.Base’
   |
13 | instance Monoid a => Monoid (IO a) where
   |          ^^^^^^^^^^^^^^^^^^^^^^^^^

ソースコード

diff #

import qualified Data.Text as T
import qualified Data.Text.IO as TI
import Data.Traversable
import Data.Foldable
import Control.Applicative
import Data.Monoid
import Prelude hiding (sequence,foldr,elem)
import Control.Monad hiding (sequence)
import Control.Monad.Trans.Class
import Control.Monad.Trans.Maybe
import Data.Maybe

instance Monoid a => Monoid (IO a) where
	mempty = return mempty
	mappend a b = mappend <$> a <*> b

readLines = sequence.flip replicate TI.getLine

check values [] = values
check values ((True,input):inputs) =  
	let new_values=filter (flip elem input) values
	in check new_values inputs
	
check values ((False,input):inputs) =  
	let new_values=filter (not.flip elem input) values
	in check new_values inputs

parse list = 
	let
		last=list!!(length list-1)
		result=if last=="YES" then True else False
		numbers=fmap read$take 4 list::[Int]
	in (result,numbers)
	
main = do
	n<-read<$>getLine::IO Int
	list<-fmap ((fmap T.unpack).T.split (==' '))<$>readLines n
	let result=head$check [0..9]$fmap parse list
	putStrLn$show result
0