atcoder

AtCoder Beginner Contest 040

A - 赤赤赤赤青 n個の中の特定の一つのブロックを隣り合うブロックの入れ替えによって両端のいずれかに移動する最小の回数。 main :: IO () main = getContents >>= print . (\[n, x] -> min (x - 1) (n - x)) . map read . words B - □□□□□ n個のタイルをど…

AtCoder Regular Contest 040

A - 床塗 'R' と 'C' を数えるだけ。 import Data.Functor ((<$>)) main :: IO () main = putStrLn =<< solve <$> (concat <$> tail <$> lines <$> getContents) solve :: String -> String solve xs = case length (filter (=='R') xs) `compare` length (f…

AtCoder Beginner Contest 024

A - 動物園 子供がいくらで大人がいくらなので団体の入場料はという問題。問題文にある通りに計算すればよい。 main :: IO () main = getContents >>= print . solve . map read . words solve :: [Integer] -> Integer solve [ a, b, c, k, s, t ] = a * s …

AtCoder Regular Contest 039

A - A - B problem 3桁固定だと愚直に解ける。 main :: IO () main = getContents >>= print . solve . words solve :: [String] -> Int solve [ a@[ a0, a1, a2 ] , b@[ b0, b1, b2 ] ] = maximum [ read a' - read b' | (a', b') <- concat $ [ [ ([ k, a1…