提出 #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 | ||||
| 結果 |
|
|
| セット名 | テストケース |
|---|---|
| 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 |