module DataStructures where
import Control.Monad.State
import Control.Monad.Writer
import Control.Monad.Error
type ProcCount = Int
type LJMonad a = WriterT String (StateT ProcCount (ErrorT String IO)) a
type TestCase = String
type Answer = String
data Problem = Problem {
problemStatement :: String,
testCases :: [(TestCase,Answer)],
problemSetterCode :: String,
timeLimit :: Int
}
data Contest = Contest {
problems :: [Problem]
}
data StatusCode = AC
| WA
| TLE
| NZEC
deriving (Eq,Show)
type SubmissionResult = [ (TestCase , StatusCode) ]
data MuevalCommand = MuevalCommand {
expression :: String,
testData :: String,
ansData :: String,
solutionFile :: String,
maxRunTime :: Int
} deriving Show