結果

問題 No.3157 Nabeatsu
コンテスト
ユーザー tomcat1233
提出日時 2025-05-24 12:22:50
言語 Haskell
(9.14.1)
コンパイル:
ghc -rtsopts -with-rtsopts=-K1G -o a.out -O2 _filename_
実行:
./a.out
結果
AC  
実行時間 865 ms / 2,000 ms
+ 392µs
コード長 1,004 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 830 ms
コンパイル使用メモリ 192,768 KB
実行使用メモリ 88,808 KB
最終ジャッジ日時 2026-07-11 01:40:46
合計ジャッジ時間 12,561 ms
ジャッジサーバーID
(参考情報)
judge2_0 / judge1_0
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 45
権限があれば一括ダウンロードができます
コンパイルメッセージ
Loaded package environment from /home/judge/.ghc/x86_64-linux-9.14.1/environments/default
[1 of 2] Compiling Main             ( Main.hs, Main.o )
[2 of 2] Linking a.out

ソースコード

diff #
raw source code

{-# OPTIONS_GHC -Wno-unused-imports -Wno-unused-top-binds #-}
import Control.Monad
import Data.Maybe
import qualified Data.ByteString.Char8 as BS
import Control.Monad.ST             
import Data.Ix
import Data.Array (Array)
import Data.Array.IArray
import Data.Array.IO             
import Data.Array.MArray          
import Data.Array.ST                
import Data.Array.Unboxed (UArray)
import Data.Char
import Data.List as L
import Data.Foldable
import Data.Function
import Control.Exception
import Data.Array.Base (STUArray(STUArray), UArray (UArray))
import Data.Array.IO.Internals (IOUArray(IOUArray))
import Data.Ord
import GHC.Float

solve n
  | '3' `elem` n = solve n' 
  | mod r 3 == 0 = solve $ show $ r - 1
  | otherwise = r 
  where
    r :: Integer = read n
    n1 = takeWhile (/= '3') n
    l2 = subtract 1 $ length $ dropWhile (/= '3') n
    n2 = replicate l2 '9'
    n' = n1 ++ ['2'] ++ n2
    
main :: IO ()
main = do
  n <- getLine
  let
    l = length n
    ans = solve n
  print ans
0