提出 #19082735
ソースコード 拡げる
{-# LANGUAGE DatatypeContexts #-}
import Control.Exception (assert)
import Control.Monad
import Control.Monad.Primitive
import qualified Control.Monad.ST as ST
import qualified Data.Array.IO as IO
import qualified Data.Array.ST as ST
import qualified Data.Array.Unboxed as A
import Data.Bits
import qualified Data.ByteString.Char8 as BS
import Data.Char
import Data.Foldable
import Data.List
import qualified Data.Map.Strict as Map
import Data.Maybe
import qualified Data.Sequence as Seq
import qualified Data.Set as Set
import qualified Data.Vector as VB
import qualified Data.Vector.Mutable as VBM
import qualified Data.Vector.Unboxed as V
import Data.Vector.Unboxed.Base
import qualified Data.Vector.Unboxed.Mutable as VM
import Debug.Trace
readInt = fst . fromJust . BS.readInt
readIntList = map readInt . BS.words
getInt = readInt <$> BS.getLine
getIntList = readIntList <$> BS.getLine
getIntVec n = V.unfoldrN n (BS.readInt . BS.dropWhile isSpace) <$> BS.getLine
readInteger = fst . fromJust . BS.readInteger
readIntegerList = map readInteger . BS.words
getInteger = readInteger <$> BS.getLine
getIntegerList = readIntegerList <$> BS.getLine
inf :: Int
inf = 10^18
bisectRight :: Ord a => (Int -> a) -> a -> Int -> Int -> Int
bisectRight f x lo hi
| lo >= hi = lo
| x < f mid = bisectRight f x lo mid
| otherwise = bisectRight f x (mid+1) hi
where
mid = lo + (hi - lo) `div` 2
main = do
[n, m] <- getIntList
xs <- replicateM m getInt
let canFinish i [] tm = i >= n
canFinish i (x:xs) tm = let d = max (x - i - 1) 0
r1 = tm - 2*d
r2 = if (tm-d) >= 0 then (tm-d)`div`2 else -1
r = max r1 r2
in if r >= 0
then canFinish (x+r) xs tm
else False
ans = bisectRight (canFinish 0 xs) False 0 inf
print ans
提出情報
| 提出日時 | |
|---|---|
| 問題 | D - 壊れた電車 |
| ユーザ | unnohideyuki |
| 言語 | Haskell (GHC 8.8.3) |
| 得点 | 100 |
| コード長 | 2247 Byte |
| 結果 | AC |
| 実行時間 | 85 ms |
| メモリ | 22108 KiB |
コンパイルエラー
Loaded package environment from /home/contestant/.ghc/x86_64-linux-8.8.3/environments/default
Main.hs:1:14: warning:
-XDatatypeContexts is deprecated: It was widely considered a misfeature, and has been removed from the Haskell language.
|
1 | {-# LANGUAGE DatatypeContexts #-}
| ^^^^^^^^^^^^^^^^
ジャッジ結果
| セット名 | Sample | Dataset1 | Dataset2 | Dataset3 | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 得点 / 配点 | 0 / 0 | 20 / 20 | 60 / 60 | 20 / 20 | ||||||||
| 結果 |
|
|
|
|
| セット名 | テストケース |
|---|---|
| Sample | sample-01.txt, sample-02.txt |
| Dataset1 | sample-01.txt, sample-02.txt, 01-01.txt, 01-02.txt, 01-03.txt, 01-04.txt, 01-05.txt, 01-06.txt, 01-07.txt, 01-08.txt, 01-09.txt, 01-10.txt, 01-11.txt, 01-12.txt, 01-13.txt, 01-14.txt, 01-15.txt |
| Dataset2 | sample-01.txt, sample-02.txt, 01-01.txt, 01-02.txt, 01-03.txt, 01-04.txt, 01-05.txt, 01-06.txt, 01-07.txt, 01-08.txt, 01-09.txt, 01-10.txt, 01-11.txt, 01-12.txt, 01-13.txt, 01-14.txt, 01-15.txt, 02-01.txt, 02-02.txt, 02-03.txt, 02-04.txt, 02-05.txt, 02-06.txt, 02-07.txt, 02-08.txt, 02-09.txt, 02-10.txt, 02-11.txt, 02-12.txt, 02-13.txt, 02-14.txt, 02-15.txt, 02-16.txt, 02-17.txt, 02-18.txt, 02-19.txt |
| Dataset3 | sample-01.txt, sample-02.txt, 01-01.txt, 01-02.txt, 01-03.txt, 01-04.txt, 01-05.txt, 01-06.txt, 01-07.txt, 01-08.txt, 01-09.txt, 01-10.txt, 01-11.txt, 01-12.txt, 01-13.txt, 01-14.txt, 01-15.txt, 02-01.txt, 02-02.txt, 02-03.txt, 02-04.txt, 02-05.txt, 02-06.txt, 02-07.txt, 02-08.txt, 02-09.txt, 02-10.txt, 02-11.txt, 02-12.txt, 02-13.txt, 02-14.txt, 02-15.txt, 02-16.txt, 02-17.txt, 02-18.txt, 02-19.txt, 03-01.txt, 03-02.txt, 03-03.txt, 03-04.txt, 03-05.txt, 03-06.txt, 03-07.txt, 03-08.txt, 03-09.txt, 03-10.txt, 03-11.txt, 03-12.txt, 03-13.txt, 03-14.txt, 03-15.txt, 03-16.txt, 03-17.txt, 03-18.txt, 03-19.txt, 03-20.txt, 03-21.txt, 03-22.txt, sample-01.txt, sample-02.txt |
| ケース名 | 結果 | 実行時間 | メモリ |
|---|---|---|---|
| 01-01.txt | AC | 6 ms | 3640 KiB |
| 01-02.txt | AC | 2 ms | 3652 KiB |
| 01-03.txt | AC | 3 ms | 3652 KiB |
| 01-04.txt | AC | 2 ms | 3700 KiB |
| 01-05.txt | AC | 2 ms | 3656 KiB |
| 01-06.txt | AC | 2 ms | 3740 KiB |
| 01-07.txt | AC | 2 ms | 3688 KiB |
| 01-08.txt | AC | 2 ms | 3748 KiB |
| 01-09.txt | AC | 2 ms | 3644 KiB |
| 01-10.txt | AC | 1 ms | 3712 KiB |
| 01-11.txt | AC | 3 ms | 3716 KiB |
| 01-12.txt | AC | 2 ms | 3588 KiB |
| 01-13.txt | AC | 2 ms | 3576 KiB |
| 01-14.txt | AC | 3 ms | 3700 KiB |
| 01-15.txt | AC | 1 ms | 3704 KiB |
| 02-01.txt | AC | 2 ms | 3704 KiB |
| 02-02.txt | AC | 2 ms | 3712 KiB |
| 02-03.txt | AC | 4 ms | 3820 KiB |
| 02-04.txt | AC | 14 ms | 6124 KiB |
| 02-05.txt | AC | 81 ms | 21916 KiB |
| 02-06.txt | AC | 47 ms | 13780 KiB |
| 02-07.txt | AC | 81 ms | 22052 KiB |
| 02-08.txt | AC | 80 ms | 20984 KiB |
| 02-09.txt | AC | 81 ms | 22024 KiB |
| 02-10.txt | AC | 9 ms | 3560 KiB |
| 02-11.txt | AC | 84 ms | 22108 KiB |
| 02-12.txt | AC | 81 ms | 21924 KiB |
| 02-13.txt | AC | 80 ms | 21916 KiB |
| 02-14.txt | AC | 82 ms | 22048 KiB |
| 02-15.txt | AC | 77 ms | 22056 KiB |
| 02-16.txt | AC | 81 ms | 22032 KiB |
| 02-17.txt | AC | 84 ms | 21988 KiB |
| 02-18.txt | AC | 83 ms | 22004 KiB |
| 02-19.txt | AC | 80 ms | 22108 KiB |
| 03-01.txt | AC | 3 ms | 3560 KiB |
| 03-02.txt | AC | 2 ms | 3668 KiB |
| 03-03.txt | AC | 4 ms | 4084 KiB |
| 03-04.txt | AC | 77 ms | 21832 KiB |
| 03-05.txt | AC | 40 ms | 11800 KiB |
| 03-06.txt | AC | 50 ms | 14264 KiB |
| 03-07.txt | AC | 80 ms | 22032 KiB |
| 03-08.txt | AC | 77 ms | 20956 KiB |
| 03-09.txt | AC | 6 ms | 3632 KiB |
| 03-10.txt | AC | 80 ms | 21988 KiB |
| 03-11.txt | AC | 85 ms | 22044 KiB |
| 03-12.txt | AC | 40 ms | 11540 KiB |
| 03-13.txt | AC | 78 ms | 21996 KiB |
| 03-14.txt | AC | 82 ms | 22008 KiB |
| 03-15.txt | AC | 82 ms | 21828 KiB |
| 03-16.txt | AC | 74 ms | 22008 KiB |
| 03-17.txt | AC | 77 ms | 22000 KiB |
| 03-18.txt | AC | 85 ms | 21832 KiB |
| 03-19.txt | AC | 84 ms | 22048 KiB |
| 03-20.txt | AC | 82 ms | 21900 KiB |
| 03-21.txt | AC | 81 ms | 21992 KiB |
| 03-22.txt | AC | 83 ms | 22000 KiB |
| sample-01.txt | AC | 3 ms | 3556 KiB |
| sample-02.txt | AC | 2 ms | 3580 KiB |