Language: C++

-- extension section
{-# OPTIONS_GHC -O2 -funbox-strict-fields #-}
{-# LANGUAGE BangPatterns      #-}
{-# LANGUAGE CPP               #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE TupleSections     #-}
 -- not supported extension
--{-# LANGUAGE Strict, StrictData #-}


module Main where

-- @@@@@@@@@@@@@@@@@--
-- import section   --
-- @@@@@@@@@@@@@@@@@--
--    import A.B.C( function name )  ...
-- or import A.B.C 

--
import           Prelude hiding(
  getLine,
  getContents,
  lines,
  words
  )

-- standard library
import           Control.Monad.ST
import           Control.Applicative
import           Data.Char
import           Data.Ratio

-- bytestring
import qualified Data.ByteString.Char8       as B
import qualified Data.ByteString.Unsafe      as B


-- containers


-- deepseq


-- regex-posix


-- text
import           Data.Text.Lazy.IO as TIO
import           Data.Text.Lazy as T
import           Data.Text.Lazy.Read as TR

-- import Data.Text.IO as TIO
-- import Data.Text as T
-- import Data.Text.Read as TR



-- unordered-containers


-- vectors
import           Data.Vector.Unboxed as UV
import           Data.Vector.Unboxed.Mutable as MV


-- mtl


-- @@@@@@@@@@@@@@@@@--
-- main section     --
-- @@@@@@@@@@@@@@@@@--

main :: IO ()
main = do
  input <- getInput
  Prelude.putStr . toAnsString . getAnswer $ input 

-- main :: IO()
-- main = do
--   answer <- getInputandanser
--   putStr . show $ answer


-- @@@@@@@@@@@@@@@@@@@@@--
-- I/O DataType section --
-- @@@@@@@@@@@@@@@@@@@@@--
type Input = Int

type Answer = (Int,Int,Int)

toAnsString (h,n,w) = show h Prelude.++ " " Prelude.++ show n Prelude.++ " " Prelude.++ show w



-- @@@@@@@@@@@@@@@@@--
-- answerSection    --
-- @@@@@@@@@@@@@@@@@--
getInput :: IO Input
getInput = do
  (! 0) <$> intVectorFromLine 1
  

getAnswer :: Input -> Answer 
getAnswer n = go 1 1 1 0
  where
    left = 4 % n
    go :: Int -> Int -> Int -> Int -> Answer
    go h n w flg | left ==  right = (h,n,w)
                 | flg == 0 = go (h+1) n w 1
                 | flg == 1 = go h (n+1) w 2
                 | flg == 2 = go h n (w+1) 0                   
      where 
        right = ( h+n+w ) % (h*n*w)


getInputAndAnser :: IO Answer
getInputAndAnser = undefined


-- @@@@@@@@@@@@@@@@@@@@@@@@@@--
-- question unique section    --
-- @@@@@@@@@@@@@@@@@@@@@@@@@@--





-- @@@@@@@@@@@@@@@@@--
-- util section     --
-- @@@@@@@@@@@@@@@@@--

-- standard Input Function
gLine :: IO Text
gLine = getLine

gContents :: IO Text
gContents = getContents

-- intVectorFromline 5  ("1 2 3 4 5") -> vector <1,2,3,4,5> 
intVectorFromLine ::Int -> IO ( Vector Int )
intVectorFromLine n = UV.unfoldrN n (B.readInt.B.dropWhile isSpace) <$> B.getLine

pairFromLine :: IO (Int,Int)
pairFromLine = do
  v <- intVectorFromLine 2
  return ( v ! 0, v ! 1)

generatePairVectorFromLine :: Int -> IO ( Vector (Int, Int) )
generatePairVectorFromLine n = generateM n (const pairFromLine)



Compiler output:
a.cc:2:3: error: stray '#' in program
    2 | {-# OPTIONS_GHC -O2 -funbox-strict-fields #-}
      |   ^
a.cc:2:43: error: stray '#' in program
    2 | {-# OPTIONS_GHC -O2 -funbox-strict-fields #-}
      |                                           ^
a.cc:3:3: error: stray '#' in program
    3 | {-# LANGUAGE BangPatterns      #-}
      |   ^
a.cc:3:32: error: stray '#' in program
    3 | {-# LANGUAGE BangPatterns      #-}
      |                                ^
a.cc:4:3: error: stray '#' in program
    4 | {-# LANGUAGE CPP               #-}
      |   ^
a.cc:4:32: error: stray '#' in program
    4 | {-# LANGUAGE CPP               #-}
      |                                ^
a.cc:5:3: error: stray '#' in program
    5 | {-# LANGUAGE OverloadedStrings #-}
      |   ^
a.cc:5:32: error: stray '#' in program
    5 | {-# LANGUAGE OverloadedStrings #-}
      |                                ^
a.cc:6:3: error: stray '#' in program
    6 | {-# LANGUAGE TupleSections     #-}
      |   ^
a.cc:6:32: error: stray '#' in program
    6 | {-# LANGUAGE TupleSections     #-}
      |                                ^
a.cc:8:5: error: stray '#' in program
    8 | --{-# LANGUAGE Strict, StrictData #-}
      |     ^
a.cc:8:35: error: stray '#' in program
    8 | --{-# LANGUAGE Strict, StrictData #-}
      |                                   ^
a.cc:13:4: error: stray '@' in program
   13 | -- @@@@@@@@@@@@@@@@@--
      |    ^
a.cc:13:5: error: stray '@' in program
   13 | -- @@@@@@@@@@@@@@@@@--
      |     ^
a.cc:13:6: error: stray '@' in program
   13 | -- @@@@@@@@@@@@@@@@@--
      |      ^
a.cc:13:7: error: stray '@' in program
   13 | -- @@@@@@@@@@@@@@@@@--
      |       ^
a.cc:13:8: error: stray '@' in program
   13 | -- @@@@@@@@@@@@@@@@@--
      |        ^
a.cc:13:9: error: stray '@' in program
   13 | -- @@@@@@@@@@@@@@@@@--
      |         ^
a.cc:13:10: error: stray '@' in program
   13 | -- @@@@@@@@@@@@@@@@@--
      |          ^
a.cc:13:11: error: stray '@' in program
   13 | -- @@@@@@@@@@@@@@@@@--
      |           ^
a.cc:13:12: error: stray '@' in program
   13 | -- @@@@@@@@@@@@@@@@@--
      |            ^
a.cc:13:13: error: stray '@' in program
   13 | -- @@@@@@@@@@@@@@@@@--
      |             ^
a.cc:13:14: error: stray '@' in program
   13 | -- @@@@@@@@@@@@@@@@@--
      |              ^
a.cc:13:15: error: stray '@' in program
   13 | -- @@@@@@@@@@@@@@@@@--
      |               ^
a.cc:13:16: error: stray '@' in program
   13 | -- @@@@@@@@@@@@@@@@@--
      |                ^
a.cc:13:17: error: stray '@' in program
   13 | -- @@@@@@@@@@@@@@@@@--
      |                 ^
a.cc:13:18: error: stray '@' in program
   13 | -- @@@@@@@@@@@@@@@@@--
      |                  ^
a.cc:13:19: error: stray '@' in program
   13 | -- @@@@@@@@@@@@@@@@@--
      |                   ^
a.cc:13:20: error: stray '@' in program
   13 | -- @@@@@@@@@@@@@@@@@--
      |                    ^
a.cc:15:4: error: stray '@' in program
   15 | -- @@@@@@@@@@@@@@@@@--
      |    ^
a.cc:15:5: error: stray '@' in program
   15 | -- @@@@@@@@@@@@@@@@@--
      |     ^
a.cc:15:6: error: stray '@' in program
   15 | -- @@@@@@@@@@@@@@@@@--
      |      ^
a.cc:15:7: error: stray '@' in program
   15 | -- @@@@@@@@@@@@@@@@@--
      |       ^
a.cc:15:8: error: stray '@' in program
   15 | -- @@@@@@@@@@@@@@@@@--
      |        ^
a.cc:15:9: error: stray '@' in program
   15 | -- @@@@@@@@@@@@@@@@@--
      |         ^
a.cc:15:10: error: stray '@' in program
   15 | -- @@@@@@@@@@@@@@@@@--
      |          ^
a.cc:15:11: error: stray '@' in program
   15 | -- @@@@@@@@@@@@@@@@@--
      |           ^
a.cc:15:12: error: stray '@' in program
   15 | -- @@@@@@@@@@@@@@@@@--
      |            ^
a.cc:15:13: error: stray '@' in program
   15 | -- @@@@@@@@@@@@@@@@@--
      |             ^
a.cc:15:14: error: stray '@' in program
   15 | -- @@@@@@@@@@@@@@@@@--
      |              ^
a.cc:15:15: error: stray '@' in program
   15 | -- @@@@@@@@@@@@@@@@@--
      |               ^
a.cc:15:16: error: stray '@' in program
   15 | -- @@@@@@@@@@@@@@@@@--
      |                ^
a.cc:15:17: error: stray '@' in program
   15 | -- @@@@@@@@@@@@@@@@@--
      |                 ^
a.cc:15:18: error: stray '@' in program
   15 | -- @@@@@@@@@@@@@@@@@--
      |                  ^
a.cc:15:19: error: stray '@' in program
   15 | -- @@@@@@@@@@@@@@@@@--
      |                   ^
a.cc:15:20: error: stray '@' in program
   15 | -- @@@@@@@@@@@@@@@@@--
      |                    ^
a.cc:69:4: error: stray '@' in program
   69 | -- @@@@@@@@@@@@@@@@@--
      |    ^
a.cc:69:5: error: stray '@' in program
   69 | -- @@@@@@@@@@@@@@@@@--
      |     ^
a.cc:69:6: error: stray '@' in program
   69 | -- @@@@@@@@@@@@@@@@@--
      |      ^
a.cc:69:7: error: stray '@' in program
   69 | -- @@@@@@@@@@@@@@@@@--
      |       ^
a.cc:69:8: error: stray '@' in program
   69 | -- @@@@@@@@@@@@@@@@@--
      |        ^
a.cc:69:9: error: stray '@' in program
   69 | -- @@@@@@@@@@@@@@@@@--
      |         ^
a.cc:69:10: error: stray '@' in program
   69 | -- @@@@@@@@@@@@@@@@@--
      |          ^
a.cc:69:11: error: stray '@' in program
   69 | -- @@@@@@@@@@@@@@@@@--
      |           ^
a.cc:69:12: error: stray '@' in program
   69 | -- @@@@@@@@@@@@@@@@@--
      |            ^
a.cc:69:13: error: stray '@' in program
   69 | -- @@@@@@@@@@@@@@@@@--
      |             ^
a.cc:69:14: error: stray '@' in program
   69 | -- @@@@@@@@@@@@@@@@@--
      |              ^
a.cc:69:15: error: stray '@' in program
   69 | -- @@@@@@@@@@@@@@@@@--
      |               ^
a.cc:69:16: error: stray '@' in program
   69 | -- @@@@@@@@@@@@@@@@@--
      |                ^
a.cc:69:17: error: stray '@' in program
   69 | -- @@@@@@@@@@@@@@@@@--
      |                 ^
a.cc:69:18: error: stray '@' in program
   69 | -- @@@@@@@@@@@@@@@@@--
      |                  ^
a.cc:69:19: error: stray '@' in program
   69 | -- @@@@@@@@@@@@@@@@@--
      |                   ^
a.cc:69:20: error: stray '@' in program
   69 | -- @@@@@@@@@@@@@@@@@--
      |                    ^
a.cc:71:4: error: stray '@' in program
   71 | -- @@@@@@@@@@@@@@@@@--
      |    ^
a.cc:71:5: error: stray '@' in program
   71 | -- @@@@@@@@@@@@@@@@@--
      |     ^
a.cc:71:6: error: stray '@' in program
   71 | -- @@@@@@@@@@@@@@@@@--
      |      ^
a.cc:71:7: error: stray '@' in program
   71 | -- @@@@@@@@@@@@@@@@@--
      |       ^
a.cc:71:8: error: stray '@' in program
   71 | -- @@@@@@@@@@@@@@@@@--
      |        ^
a.cc:71:9: error: stray '@' in program
   71 | -- @@@@@@@@@@@@@@@@@--
      |         ^
a.cc:71:10: error: stray '@' in program
   71 | -- @@@@@@@@@@@@@@@@@--
      |          ^
a.cc:71:11: error: stray '@' in program
   71 | -- @@@@@@@@@@@@@@@@@--
      |           ^
a.cc:71:12: error: stray '@' in program
   71 | -- @@@@@@@@@@@@@@@@@--
      |            ^
a.cc:71:13: error: stray '@' in program
   71 | -- @@@@@@@@@@@@@@@@@--
      |             ^
a.cc:71:14: error: stray '@' in program
   71 | -- @@@@@@@@@@@@@@@@@--
      |              ^
a.cc:71:15: error: stray '@' in program
   71 | -- @@@@@@@@@@@@@@@@@--
      |               ^
a.cc:71:16: error: stray '@' in program
   71 | -- @@@@@@@@@@@@@@@@@--
      |                ^
a.cc:71:17: error: stray '@' in program
   71 | -- @@@@@@@@@@@@@@@@@--
      |                 ^
a.cc:71:18: error: stray '@' in program
   71 | -- @@@@@@@@@@@@@@@@@--
      |                  ^
a.cc:71:19: error: stray '@' in program
   71 | -- @@@@@@@@@@@@@@@@@--
      |                   ^
a.cc:71:20: error: stray '@' in program
   71 | -- @@@@@@@@@@@@@@@@@--
      |                    ^
a.cc:84:4: error: stray '@' in program
   84 | -- @@@@@@@@@@@@@@@@@@@@@--
      |    ^
a.cc:84:5: error: stray '@' in program
   84 | -- @@@@@@@@@@@@@@@@@@@@@--
      |     ^
a.cc:84:6: error: stray '@' in program
   84 | -- @@@@@@@@@@@@@@@@@@@@@--
      |      ^
a.cc:84:7: error: stray '@' in program
   84 | -- @@@@@@@@@@@@@@@@@@@@@--
      |       ^
a.cc:84:8: error: stray '@' in program
   84 | -- @@@@@@@@@@@@@@@@@@@@@--
      |        ^
a.cc:84:9: error: stray '@' in program
   84 | -- @@@@@@@@@@@@@@@@@@@@@--
      |         ^
a.cc:84:10: error: stray '@' in program
   84 | -- @@@@@@@@@@@@@@@@@@@@@--
      |          ^
a.cc:84:11: error: stray '@' in program
   84 | -- @@@@@@@@@@@@@@@@@@@@@--
      |           ^
a.cc:84:12: error: stray '@' in program
   84 | -- @@@@@@@@@@@@@@@@@@@@@--
      |            ^
a.cc:84:13: error: stray '@' in program
   84 | -- @@@@@@@@@@@@@@@@@@@@@--
      |             ^
a.cc:84:14: error: stray '@' in program
   84 | -- @@@@@@@@@@@@@@@@@@@@@--
      |              ^
a.cc:84:15: error: stray '@' in program
   84 | -- @@@@@@@@@@@@@@@@@@@@@--
      |               ^
a.cc:84:16: error: stray '@' in program
   84 | -- @@@@@@@@@@@@@@@@@@@@@--
      |                ^
a.cc:84:17: error: stray '@' in program
   84 | -- @@@@@@@@@@@@@@@@@@@@@--
      |                 ^
a.cc:84:18: error: stray '@' in program
   84 | -- @@@@@@@@@@@@@@@@@@@@@--
      |                  ^
a.cc:84:19: error: stray '@' in program
   84 | -- @@@@@@@@@@@@@@@@@@@@@--
      |                   ^
a.cc:84:20: error: stray '@' in program
   84 | -- @@@@@@@@@@@@@@@@@@@@@--
      |                    ^
a.cc:84:21: error: stray '@' in program
   84 | -- @@@@@@@@@@@@@@@@@@@@@--
      |                     ^
a.cc:84:22: error: stray '@' in program
   84 | -- @@@@@@@@@@@@@@@@@@@@@--
      |                      ^
a.cc:84:23: error: stray '@' in program
   84 | -- @@@@@@@@@@@@@@@@@@@@@--
      |                       ^
a.cc:84:24: error: stray '@' in program
   84 | -- @@@@@@@@@@@@@@@@@@@@@--
      |                        ^
a.cc:86:4: error: stray '@' in program
   86 | -- @@@@@@@@@@@@@@@@@@@@@--
      |    ^
a.cc:86:5: error: stray '@' in program
   86 | -- @@@@@@@@@@@@@@@@@@@@@--
      |     ^
a.cc:86:6: error: stray '@' in program
   86 | -- @@@@@@@@@@@@@@@@@@@@@--
      |      ^
a.cc:86:7: error: stray '@' in program
   86 | -- @@@@@@@@@@@@@@@@@@@@@--
      |       ^
a.cc:86:8: error: stray '@' in program
   86 | -- @@@@@@@@@@@@@@@@@@@@@--
      |        ^
a.cc:86:9: error: stray '@' in program
   86 | -- @@@@@@@@@@@@@@@@@@@@@--
      |         ^
a.cc:86:10: error: stray '@' in program
   86 | -- @@@@@@@@@@@@@@@@@@@@@--