Submission #40785503


Source Code Expand

Copy
import Control.Monad
import Data.Array
import Data.List
import qualified Data.IntSet as IS
main = do
[h,w,t] <- getLnInts
sss <- replicateM h getLnInts
let ans = abc298g h w t sss
print ans
getLnInts :: IO [Int]
getLnInts = map read . words <$> getLine
abc298g :: Int -> Int -> Int -> [[Int]] -> Int
abc298g h w t sss = minimum
[ res - lower
| lower <- IS.elems lowers
, let res = solve lower
, res >= lower
]
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
import Control.Monad
import Data.Array
import Data.List
import qualified Data.IntSet as IS

main = do
  [h,w,t] <- getLnInts
  sss <- replicateM h getLnInts
  let ans = abc298g h w t sss
  print ans

getLnInts :: IO [Int]
getLnInts = map read . words <$> getLine

abc298g :: Int -> Int -> Int -> [[Int]] -> Int
abc298g h w t sss = minimum
    [ res - lower
    | lower <- IS.elems lowers
    , let res = solve lower
    , res >= lower
    ]
  where
    h1 = succ h
    w1 = succ w
    accs = listArray ((1,1),(h1,w1)) $ concat $
           scanl (zipWith (+)) (replicate w1 0) $
           map (scanl (+) 0) sss
-- 上を含まない範囲指定
    berries u d l r = accs ! (d,r) + accs ! (u,l) - accs ! (d,l) - accs ! (u,r)
    lowers = IS.fromList
      [ berries u d l r
      | u <- [1..h], d <- [succ u..h1]
      , l <- [1..w], r <- [succ l..w1]
      ]
    t1 = succ t
    solve lower = arr ! (1,h1,1,w1,t1)
      where
        bnds = ((1,2,1,2,1),(h,h1,w,w1,t1))
        arr = listArray bnds $ map f $ range bnds
        f (u,d,l,r,c)
          | c == 1    = if b < lower then -1 else b
          | null recs = -1
          | otherwise = minimum recs
          where
            b = berries u d l r
            recs =
              [ max a1 a2
              | m <- [succ u..pred d], cc <- [1..pred c]
              , let a1 = arr ! (u, m, l, r, cc), a1 >= lower
              , let a2 = arr ! (m, d, l, r, c - cc), a2 >= lower
              ] ++
              [ max a1 a2
              | m <- [succ l..pred r], cc <- [1..pred c]
              , let a1 = arr ! (u, d, l, m, cc), a1 >= lower
              , let a2 = arr ! (u, d, m, r, c - cc), a2 >= lower
              ]

Submission Info

Submission Time
Task G - Strawberry War
User joetheshootingst
Language Haskell (GHC 8.8.3)
Score 600
Code Size 1736 Byte
Status AC
Exec Time 5697 ms
Memory 25092 KB

Compile Error

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

Judge Result

Set Name Sample All AfterContest
Score / Max Score 0 / 0 600 / 600 0 / 0
Status
AC × 2
AC × 75
AC × 1
Set Name Test Cases
Sample 00_sample_00.txt, 00_sample_01.txt
All 00_sample_00.txt, 00_sample_01.txt, 01_srnd_00.txt, 01_srnd_01.txt, 01_srnd_02.txt, 01_srnd_03.txt, 01_srnd_04.txt, 01_srnd_05.txt, 01_srnd_06.txt, 01_srnd_07.txt, 02_rnd_00.txt, 02_rnd_01.txt, 02_rnd_02.txt, 02_rnd_03.txt, 02_rnd_04.txt, 02_rnd_05.txt, 02_rnd_06.txt, 02_rnd_07.txt, 02_rnd_08.txt, 03_same_00.txt, 03_same_01.txt, 03_same_02.txt, 03_same_03.txt, 03_same_04.txt, 03_same_05.txt, 03_same_06.txt, 03_same_07.txt, 03_same_08.txt, 03_same_09.txt, 04_pow2_00.txt, 04_pow2_01.txt, 04_pow2_02.txt, 04_pow2_03.txt, 04_pow2_04.txt, 04_pow2_05.txt, 04_pow2_06.txt, 04_pow2_07.txt, 04_pow2_08.txt, 04_pow2_09.txt, 05_tv_00.txt, 05_tv_01.txt, 05_tv_02.txt, 05_tv_03.txt, 05_tv_04.txt, 05_tv_05.txt, 06_hack_00.txt, 06_hack_01.txt, 06_hack_02.txt, 06_hack_03.txt, 06_hack_04.txt, 06_hack_05.txt, 06_hack_06.txt, 06_hack_07.txt, 06_hack_08.txt, 06_hack_09.txt, 06_hack_10.txt, 06_hack_11.txt, 06_hack_12.txt, 06_hack_13.txt, 06_hack_14.txt, 06_hack_15.txt, 06_hack_16.txt, 06_hack_17.txt, 06_hack_18.txt, 06_hack_19.txt, 06_hack_20.txt, 06_hack_21.txt, 06_hack_22.txt, 06_hack_23.txt, 06_hack_24.txt, 06_hack_25.txt, 06_hack_26.txt, 06_hack_27.txt, 06_hack_28.txt, 06_hack_29.txt
AfterContest 99_after_00.txt
Case Name Status Exec Time Memory
00_sample_00.txt AC 8 ms 4036 KB
00_sample_01.txt AC 2 ms 3768 KB
01_srnd_00.txt AC 2 ms 3868 KB
01_srnd_01.txt AC 2 ms 3896 KB
01_srnd_02.txt AC 2 ms 3844 KB
01_srnd_03.txt AC 2 ms 4008 KB
01_srnd_04.txt AC 2 ms 4032 KB
01_srnd_05.txt AC 2 ms 3796 KB
01_srnd_06.txt AC 2 ms 4196 KB
01_srnd_07.txt AC 4 ms 4364 KB
02_rnd_00.txt AC 2854 ms 17924 KB
02_rnd_01.txt AC 567 ms 10864 KB
02_rnd_02.txt AC 2751 ms 17924 KB
02_rnd_03.txt AC 67 ms 5936 KB
02_rnd_04.txt AC 456 ms 9952 KB
02_rnd_05.txt AC 1660 ms 15948 KB
02_rnd_06.txt AC 5697 ms 25092 KB
02_rnd_07.txt AC 987 ms 12804 KB
02_rnd_08.txt AC 1590 ms 13900 KB
03_same_00.txt AC 2 ms 3848 KB
03_same_01.txt AC 3 ms 4152 KB
03_same_02.txt AC 2 ms 3924 KB
03_same_03.txt AC 2 ms 4048 KB
03_same_04.txt AC 5 ms 4664 KB
03_same_05.txt AC 2 ms 4312 KB
03_same_06.txt AC 4 ms 4664 KB
03_same_07.txt AC 3 ms 3892 KB
03_same_08.txt AC 4 ms 4708 KB
03_same_09.txt AC 9 ms 5524 KB
04_pow2_00.txt AC 2 ms 3860 KB
04_pow2_01.txt AC 3 ms 4348 KB
04_pow2_02.txt AC 2 ms 3948 KB
04_pow2_03.txt AC 3 ms 4312 KB
04_pow2_04.txt AC 7 ms 5072 KB
04_pow2_05.txt AC 4 ms 4864 KB
04_pow2_06.txt AC 34 ms 5796 KB
04_pow2_07.txt AC 4 ms 4536 KB
04_pow2_08.txt AC 33 ms 5716 KB
04_pow2_09.txt AC 21 ms 5544 KB
05_tv_00.txt AC 139 ms 19896 KB
05_tv_01.txt AC 63 ms 12980 KB
05_tv_02.txt AC 55 ms 13928 KB
05_tv_03.txt AC 14 ms 6732 KB
05_tv_04.txt AC 48 ms 15340 KB
05_tv_05.txt AC 268 ms 24128 KB
06_hack_00.txt AC 4787 ms 24004 KB
06_hack_01.txt AC 4035 ms 24180 KB
06_hack_02.txt AC 5084 ms 24296 KB
06_hack_03.txt AC 3916 ms 24168 KB
06_hack_04.txt AC 3869 ms 21072 KB
06_hack_05.txt AC 4165 ms 24180 KB
06_hack_06.txt AC 3991 ms 23128 KB
06_hack_07.txt AC 2060 ms 17084 KB
06_hack_08.txt AC 3451 ms 21220 KB
06_hack_09.txt AC 4639 ms 23120 KB
06_hack_10.txt AC 4472 ms 21076 KB
06_hack_11.txt AC 2787 ms 21068 KB
06_hack_12.txt AC 3509 ms 19640 KB
06_hack_13.txt AC 3884 ms 23272 KB
06_hack_14.txt AC 3875 ms 22204 KB
06_hack_15.txt AC 4207 ms 23228 KB
06_hack_16.txt AC 3230 ms 19136 KB
06_hack_17.txt AC 4393 ms 21092 KB
06_hack_18.txt AC 4476 ms 24144 KB
06_hack_19.txt AC 3863 ms 20072 KB
06_hack_20.txt AC 3172 ms 19080 KB
06_hack_21.txt AC 3978 ms 22024 KB
06_hack_22.txt AC 3226 ms 22092 KB
06_hack_23.txt AC 3334 ms 23044 KB
06_hack_24.txt AC 3741 ms 20080 KB
06_hack_25.txt AC 4703 ms 22024 KB
06_hack_26.txt AC 4256 ms 23156 KB
06_hack_27.txt AC 2952 ms 19020 KB
06_hack_28.txt AC 4636 ms 24296 KB
06_hack_29.txt AC 4360 ms 22108 KB
99_after_00.txt AC 857 ms 11880 KB


2025-04-26 (Sat)
14:26:57 +00:00