Atcoder Regular Contest #011 with Haskell

久しぶりにHaskellをつかいました.
やっぱりつかわないとできないですね.Haskell書かないとです.

A

C++で書いたコードを流用した.

Functor, Applicative Functor, Monadどれも忘れてしまいました.

import Control.Applicative
 
-- 順にn, m, N(iで代用), unused
solve :: Int -> Int -> Int -> Int -> Int
solve n m i unused
    | i < n = if i + unused < n then i
              else i + solve n m ((i + unused) `div` n * m) ((i + unused) `mod` n)
    | otherwise = i + solve n m (i `div` n * m) (unused + i `mod` n)
 
main = do
  [n, m, i] <- map read . words <$> getLine -- こんなに簡単に書けてうれしいよー
  print $ solve n m i 0