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 |
|
|
|
| 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 |