Skip to content

Instantly share code, notes, and snippets.

@instinctive
Created April 8, 2017 18:40
Show Gist options
  • Save instinctive/8899fcffd42dbc9f46df0a93a5186027 to your computer and use it in GitHub Desktop.
Save instinctive/8899fcffd42dbc9f46df0a93a5186027 to your computer and use it in GitHub Desktop.
Haskell Code Jam Template
-- pragmas {{{
-- {-# LANGUAGE DataKinds #-}
-- {-# LANGUAGE FlexibleContexts #-}
-- {-# LANGUAGE TemplateHaskell #-}
-- }}}
module Main where
-- gcj imports {{{
import Control.Monad
import Data.Bifunctor
import Data.Bool
import Data.Char
import Data.Either
import Data.Foldable
import Data.List
import Data.Maybe
import Data.Monoid
import Data.Traversable
import System.IO (stderr, hPutChar, hFlush)
import qualified Debug.Trace as DBG
-- }}}
-- my imports {{{
-- import Control.Lens
-- import Data.Modular (Mod)
-- import Linear.V2
-- import qualified Data.Array as A
-- import qualified Data.IntMap as M
-- import qualified Data.IntMap.Strict as M
-- import qualified Data.IntSet as S
-- import qualified Data.Map as M
-- import qualified Data.Map.Strict as M
-- import qualified Data.Set as S
-- }}}
-- gcj {{{
gcj :: IO () -> IO ()
gcj docase = do
t <- getRead
for_ [1..t] $ \i -> do
putStr $ "Case #" <> show i <> ": "
docase
hPutChar stderr '.'
when (i `mod` 10 == 0) $ hPutChar stderr '\n'
hFlush stderr
getRead :: Read a => IO a
getRead = read <$> getLine
getReadList :: Read a => IO [a]
getReadList = fmap read . words <$> getLine
-- }}}
type Z = Int
main :: IO ()
main = gcj $ do
n <- getRead
print $ solve n
solve :: Z -> Z
solve n = n^2
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment