Submission #576242


Source Code Expand

import qualified Data.IntMap.Strict as M
import Data.List (isPrefixOf)
import Control.Applicative
import Control.Monad

candidates :: [Int] -> String -> M.IntMap String -> [M.IntMap String]
candidates [] [] m = [m]
candidates (d:ds) str m = case M.lookup d m of
  Just g
    | isPrefixOf g str -> candidates ds (drop (length g) str) m
    | otherwise -> []
  Nothing -> do
    n <- [1..min (length str) 3]
    candidates ds (drop n str) $ M.insert d (take n str) m
candidates [] _ _ = []

solve :: [([Int], String)] -> M.IntMap String -> [M.IntMap String]
solve ((ds,str): samples) m = candidates ds str m >>= solve samples
solve [] m = [m]

main = do
  [_, n] <- map read <$> words <$> getLine
  let smp [v, w] = (map (subtract (fromEnum '0') . fromEnum) v, w)
  samples <- map (smp . words) <$> replicateM n getLine
  putStr $ unlines $ M.elems $ head $ solve samples M.empty

Submission Info

Submission Time
Task D - 語呂合わせ
User fumieval
Language Haskell (Haskell Platform 2014.2.0.0)
Score 100
Code Size 901 Byte
Status AC
Exec Time 36 ms
Memory 1948 KiB

Judge Result

Set Name Sample Subtask1 Subtask2
Score / Max Score 0 / 0 40 / 40 60 / 60
Status
AC × 4
AC × 23
AC × 44
Set Name Test Cases
Sample sample-01.txt, sample-02.txt, sample-03.txt, sample-04.txt
Subtask1 sample-02.txt, sample-03.txt, sample-04.txt, subtask1-01.txt, subtask1-02.txt, subtask1-03.txt, subtask1-04.txt, subtask1-05.txt, subtask1-06.txt, subtask1-07.txt, subtask1-08.txt, subtask1-09.txt, subtask1-10.txt, subtask1-11.txt, subtask1-12.txt, subtask1-13.txt, subtask1-14.txt, subtask1-15.txt, subtask1-16.txt, subtask1-17.txt, subtask1-18.txt, subtask1-19.txt, subtask1-20.txt
Subtask2 sample-01.txt, sample-02.txt, sample-03.txt, sample-04.txt, subtask1-01.txt, subtask1-02.txt, subtask1-03.txt, subtask1-04.txt, subtask1-05.txt, subtask1-06.txt, subtask1-07.txt, subtask1-08.txt, subtask1-09.txt, subtask1-10.txt, subtask1-11.txt, subtask1-12.txt, subtask1-13.txt, subtask1-14.txt, subtask1-15.txt, subtask1-16.txt, subtask1-17.txt, subtask1-18.txt, subtask1-19.txt, subtask1-20.txt, subtask2-01.txt, subtask2-02.txt, subtask2-03.txt, subtask2-04.txt, subtask2-05.txt, subtask2-06.txt, subtask2-07.txt, subtask2-08.txt, subtask2-09.txt, subtask2-10.txt, subtask2-11.txt, subtask2-12.txt, subtask2-13.txt, subtask2-14.txt, subtask2-15.txt, subtask2-16.txt, subtask2-17.txt, subtask2-18.txt, subtask2-19.txt, subtask2-20.txt
Case Name Status Exec Time Memory
sample-01.txt AC 35 ms 1376 KiB
sample-02.txt AC 28 ms 1308 KiB
sample-03.txt AC 28 ms 1436 KiB
sample-04.txt AC 29 ms 1304 KiB
subtask1-01.txt AC 29 ms 1432 KiB
subtask1-02.txt AC 30 ms 1436 KiB
subtask1-03.txt AC 30 ms 1600 KiB
subtask1-04.txt AC 29 ms 1432 KiB
subtask1-05.txt AC 30 ms 1432 KiB
subtask1-06.txt AC 31 ms 1640 KiB
subtask1-07.txt AC 31 ms 1596 KiB
subtask1-08.txt AC 28 ms 1564 KiB
subtask1-09.txt AC 30 ms 1692 KiB
subtask1-10.txt AC 30 ms 1692 KiB
subtask1-11.txt AC 31 ms 1948 KiB
subtask1-12.txt AC 30 ms 1668 KiB
subtask1-13.txt AC 30 ms 1948 KiB
subtask1-14.txt AC 30 ms 1560 KiB
subtask1-15.txt AC 33 ms 1560 KiB
subtask1-16.txt AC 31 ms 1940 KiB
subtask1-17.txt AC 29 ms 1560 KiB
subtask1-18.txt AC 31 ms 1560 KiB
subtask1-19.txt AC 31 ms 1676 KiB
subtask1-20.txt AC 31 ms 1688 KiB
subtask2-01.txt AC 31 ms 1560 KiB
subtask2-02.txt AC 32 ms 1560 KiB
subtask2-03.txt AC 32 ms 1676 KiB
subtask2-04.txt AC 32 ms 1912 KiB
subtask2-05.txt AC 32 ms 1684 KiB
subtask2-06.txt AC 31 ms 1684 KiB
subtask2-07.txt AC 32 ms 1940 KiB
subtask2-08.txt AC 31 ms 1552 KiB
subtask2-09.txt AC 36 ms 1940 KiB
subtask2-10.txt AC 32 ms 1944 KiB
subtask2-11.txt AC 33 ms 1940 KiB
subtask2-12.txt AC 30 ms 1684 KiB
subtask2-13.txt AC 29 ms 1692 KiB
subtask2-14.txt AC 32 ms 1608 KiB
subtask2-15.txt AC 32 ms 1688 KiB
subtask2-16.txt AC 32 ms 1684 KiB
subtask2-17.txt AC 32 ms 1688 KiB
subtask2-18.txt AC 33 ms 1864 KiB
subtask2-19.txt AC 30 ms 1944 KiB
subtask2-20.txt AC 30 ms 1940 KiB