Submission #34760057


Source Code Expand

Copy
import Control.Monad
import qualified Data.ByteString.Char8 as BS
import Data.Char
import Data.List
import qualified Data.Set as S
main = do
--
[n,m] <- bsGetLnInts
co <- BS.getContents
let (ss,ts) = splitAt n $ BS.lines co
let ans = abc268d n m ss ts
BS.putStrLn ans
bsGetLnInts :: IO [Int]
bsGetLnInts = BS.getLine >>= return . unfoldr (BS.readInt . BS.dropWhile isSpace)
noanswer = BS.pack "-1"
abc268d :: Int -> Int -> [BS.ByteString] -> [BS.ByteString] -> BS.ByteString
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
import Control.Monad
import qualified Data.ByteString.Char8 as BS
import Data.Char
import Data.List

import qualified Data.Set as S

main = do
-- 読み込み
  [n,m] <- bsGetLnInts
  co <- BS.getContents
  let (ss,ts) = splitAt n $ BS.lines co
  let ans = abc268d n m ss ts
  BS.putStrLn ans

bsGetLnInts :: IO [Int]
bsGetLnInts = BS.getLine >>= return . unfoldr (BS.readInt . BS.dropWhile isSpace)

noanswer = BS.pack "-1"

abc268d :: Int -> Int -> [BS.ByteString] -> [BS.ByteString] -> BS.ByteString
abc268d 1 m [s] ts
  | elem s ts = noanswer
  | BS.length s < 3 = noanswer
  | otherwise = s
abc268d n m ss ts
  | null zs = noanswer
  | otherwise = head zs
  where
    tS = S.fromList ts
    slen = sum (map BS.length ss)
    usmax = 16 - slen
    usmin = 3 - slen
    zs =
      [ z
      | ss1 <- permutations ss
      , k <- [max usmin (pred n) .. usmax]
      , ks <- combinations (pred n) k
      , let z = BS.concat $ zipWith f (0 : ks) ss1
      , S.notMember z tS
      ]

f k s = BS.append (BS.take k usb) s

usb = BS.pack $ replicate 16 '_'

combinations 1 x = [[x]]
combinations n x = [a:bs | a <- [1 .. x-n+1], bs <- combinations (pred n) (x-a)]

{-
8個の順列の個数は 8! = 40320
下線を1以上、合計が16文字以下になるようにいれる方法は (n-1)~使える個数 C (n-1)
総当たりしても間に合う
-}

Submission Info

Submission Time
Task D - Unique Username
User joetheshootingst
Language Haskell (GHC 8.8.3)
Score 400
Code Size 1405 Byte
Status AC
Exec Time 200 ms
Memory 26444 KB

Compile Error

Loaded package environment from /home/contestant/.ghc/x86_64-linux-8.8.3/environments/default

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 400 / 400
Status
AC × 4
AC × 37
Set Name Test Cases
Sample 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt, 00_sample_03.txt
All 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt, 00_sample_03.txt, 01_one_00.txt, 01_one_01.txt, 01_one_02.txt, 01_one_03.txt, 01_one_04.txt, 01_one_05.txt, 02_case_00.txt, 02_case_01.txt, 02_case_02.txt, 02_case_03.txt, 02_case_04.txt, 02_case_05.txt, 02_case_06.txt, 02_case_07.txt, 02_case_08.txt, 02_case_09.txt, 02_case_10.txt, 02_case_11.txt, 02_case_12.txt, 02_case_13.txt, 02_case_14.txt, 02_case_15.txt, 02_case_16.txt, 02_case_17.txt, 03_eight_00.txt, 03_eight_01.txt, 03_eight_02.txt, 03_eight_03.txt, 03_eight_04.txt, 03_eight_05.txt, 04_corner_00.txt, 04_corner_01.txt, 04_corner_02.txt
Case Name Status Exec Time Memory
00_sample_00.txt AC 8 ms 3468 KB
00_sample_01.txt AC 2 ms 3700 KB
00_sample_02.txt AC 3 ms 3756 KB
00_sample_03.txt AC 3 ms 3800 KB
01_one_00.txt AC 2 ms 3720 KB
01_one_01.txt AC 2 ms 3664 KB
01_one_02.txt AC 2 ms 3668 KB
01_one_03.txt AC 2 ms 3700 KB
01_one_04.txt AC 2 ms 3620 KB
01_one_05.txt AC 2 ms 3688 KB
02_case_00.txt AC 154 ms 25864 KB
02_case_01.txt AC 153 ms 25728 KB
02_case_02.txt AC 153 ms 26036 KB
02_case_03.txt AC 152 ms 25976 KB
02_case_04.txt AC 152 ms 25792 KB
02_case_05.txt AC 153 ms 26072 KB
02_case_06.txt AC 154 ms 25776 KB
02_case_07.txt AC 154 ms 25956 KB
02_case_08.txt AC 158 ms 25968 KB
02_case_09.txt AC 181 ms 25984 KB
02_case_10.txt AC 157 ms 25908 KB
02_case_11.txt AC 153 ms 25860 KB
02_case_12.txt AC 154 ms 26284 KB
02_case_13.txt AC 157 ms 26072 KB
02_case_14.txt AC 151 ms 25872 KB
02_case_15.txt AC 153 ms 26296 KB
02_case_16.txt AC 148 ms 26444 KB
02_case_17.txt AC 151 ms 25812 KB
03_eight_00.txt AC 149 ms 26444 KB
03_eight_01.txt AC 148 ms 26408 KB
03_eight_02.txt AC 149 ms 26320 KB
03_eight_03.txt AC 196 ms 26428 KB
03_eight_04.txt AC 200 ms 26284 KB
03_eight_05.txt AC 164 ms 26048 KB
04_corner_00.txt AC 6 ms 3564 KB
04_corner_01.txt AC 2 ms 3584 KB
04_corner_02.txt AC 2 ms 3676 KB


2025-04-23 (Wed)
17:05:12 +00:00