提出 #30018764


ソースコード 拡げる

// [start, stop]の範囲で、cond x がtrueとなる最小のxを求める
// [start, stop]の範囲全てが満たす場合はstart-1, 全てが満たさない場合はstop+1
let lowerBound start stop cond =
    let left = start - 1
    let right = stop + 1
    let rec loop left right =
        // eprintfn "%d %d" left right
        if right - left <= 1 then right
        else
            let mid = left + (right - left) / 2
            if cond mid
                then loop left mid
                else loop mid right
    loop left right

#nowarn "25"

let getStr () = stdin.ReadLine()
let getInt () = stdin.ReadLine() |> int
let getInts () = stdin.ReadLine().Split() |> Array.map int

let N = getInt()
let A = getInts() |> Array.sort
let B = getInts()
let C = getInts() |> Array.sort

let checkBA ib ia = B.[ib] > A.[ia]
let checkBC ib ic = C.[ic] > B.[ib]
seq {
    for ib in 0..(N-1) do
        let ia = lowerBound 0 (N-1) (fun ia -> A.[ia] >= B.[ib]) |> int64
        let ic = N - (lowerBound 0 (N-1) (fun ic -> B.[ib] < C.[ic])) |> int64
        yield ia * ic
} |> Seq.sum |> printfn "%d"

提出情報

提出日時
問題 C - Snuke Festival
ユーザ maesora
言語 F# (.NET Core 3.1.201)
得点 300
コード長 1136 Byte
結果 AC
実行時間 259 ms
メモリ 66340 KiB

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 300 / 300
結果
AC × 3
AC × 32
セット名 テストケース
Sample s1.txt, s2.txt, s3.txt
All 01.txt, 02.txt, 03.txt, 04.txt, 05.txt, 06.txt, 07.txt, 08.txt, 09.txt, 10.txt, 11.txt, 12.txt, 13.txt, 14.txt, 15.txt, 16.txt, 17.txt, 18.txt, 19.txt, 20.txt, 21.txt, 22.txt, 23.txt, 24.txt, 25.txt, 26.txt, 27.txt, 28.txt, 29.txt, s1.txt, s2.txt, s3.txt
ケース名 結果 実行時間 メモリ
01.txt AC 259 ms 49160 KiB
02.txt AC 243 ms 49316 KiB
03.txt AC 222 ms 45488 KiB
04.txt AC 226 ms 45352 KiB
05.txt AC 219 ms 43436 KiB
06.txt AC 223 ms 43296 KiB
07.txt AC 203 ms 47272 KiB
08.txt AC 203 ms 47280 KiB
09.txt AC 194 ms 45684 KiB
10.txt AC 200 ms 45720 KiB
11.txt AC 178 ms 45332 KiB
12.txt AC 175 ms 45368 KiB
13.txt AC 238 ms 49196 KiB
14.txt AC 214 ms 49140 KiB
15.txt AC 213 ms 49416 KiB
16.txt AC 214 ms 49460 KiB
17.txt AC 216 ms 51356 KiB
18.txt AC 214 ms 51548 KiB
19.txt AC 237 ms 49368 KiB
20.txt AC 184 ms 45548 KiB
21.txt AC 181 ms 45356 KiB
22.txt AC 213 ms 66340 KiB
23.txt AC 224 ms 49472 KiB
24.txt AC 231 ms 49316 KiB
25.txt AC 225 ms 49420 KiB
26.txt AC 98 ms 29612 KiB
27.txt AC 101 ms 29844 KiB
28.txt AC 100 ms 29876 KiB
29.txt AC 110 ms 29628 KiB
s1.txt AC 101 ms 29676 KiB
s2.txt AC 98 ms 29960 KiB
s3.txt AC 101 ms 29780 KiB