Submission #3228121
Source Code Expand
module IntMap = Map.Make (struct type t = int let compare = compare end) let rec lower_bound l r p = if r <= 1 + l then r else let m = (l + r) / 2 in if p m then lower_bound l m p else lower_bound m r p let () = Scanf.scanf "%d %d %d %d\n" @@ fun n m r t -> let es = Array.make n [] in for i = 0 to m - 1 do Scanf.scanf "%d %d %d\n" @@ fun a b c -> es.(a - 1) <- (b - 1, c) :: es.(a - 1); es.(b - 1) <- (a - 1, c) :: es.(b - 1) done; let d = Array.make_matrix n n max_int in for s = 0 to n - 1 do d.(s).(s) <- 0; let rec dijkstra q = match IntMap.min_binding q with | exception Not_found -> () | (w, us) -> dijkstra @@ List.fold_left (fun q u -> if d.(s).(u) < w then q else List.fold_left (fun q (v, c) -> if d.(s).(v) <= w + c then q else begin d.(s).(v) <- w + c; IntMap.add (w + c) (v :: try IntMap.find (w + c) q with Not_found -> []) q end) q es.(u)) (IntMap.remove w q) us in dijkstra (IntMap.singleton 0 [s]) done; Printf.printf "%d\n" @@ Array.fold_left ( + ) 0 @@ Array.init n @@ fun g -> d.(g).(g) <- 1000000000000000; Array.sort compare d.(g); Array.fold_left ( + ) 0 @@ Array.init (n - 1) @@ fun i -> ( - ) (n - 1 - if r < t then 1 else 0) @@ lower_bound (-1) (n - 1) @@ fun j -> d.(g).(i) * r < d.(g).(j) * t
Submission Info
Submission Time | |
---|---|
Task | C - ウサギとカメ |
User | fetburner |
Language | OCaml (4.02.3) |
Score | 100 |
Code Size | 1532 Byte |
Status | AC |
Exec Time | 4012 ms |
Memory | 91712 KB |
Judge Result
Set Name | Sample | All | ||||
---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 100 / 100 | ||||
Status |
|
|
Set Name | Test Cases |
---|---|
Sample | subtask0_sample-01.txt, subtask0_sample-02.txt |
All | subtask0_sample-01.txt, subtask0_sample-02.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt, subtask1_16.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
subtask0_sample-01.txt | AC | 1 ms | 384 KB |
subtask0_sample-02.txt | AC | 1 ms | 384 KB |
subtask1_01.txt | AC | 1 ms | 512 KB |
subtask1_02.txt | AC | 2 ms | 768 KB |
subtask1_03.txt | AC | 2 ms | 768 KB |
subtask1_04.txt | AC | 1 ms | 384 KB |
subtask1_05.txt | AC | 22 ms | 2944 KB |
subtask1_06.txt | AC | 24 ms | 3072 KB |
subtask1_07.txt | AC | 70 ms | 4736 KB |
subtask1_08.txt | AC | 109 ms | 5376 KB |
subtask1_09.txt | AC | 1068 ms | 26496 KB |
subtask1_10.txt | AC | 1164 ms | 30080 KB |
subtask1_11.txt | AC | 405 ms | 12160 KB |
subtask1_12.txt | AC | 3906 ms | 86588 KB |
subtask1_13.txt | AC | 3899 ms | 86588 KB |
subtask1_14.txt | AC | 4012 ms | 91452 KB |
subtask1_15.txt | AC | 2560 ms | 57920 KB |
subtask1_16.txt | AC | 3997 ms | 91712 KB |