Submission #39381925
Source Code Expand
let subtree_size al =
let ss = Array.make (Array.length al) 1 in
let rec loop p i =
List.iter (fun j ->
if j <> p then begin
loop i j;
ss.(i) <- ss.(i) + ss.(j)
end
) al.(i) in
let () = loop (-1) 0 in
ss
let centroid_decomp al ss =
let pl = Array.make (Array.length al) (-2) in
let rec decomp p i pc n =
(* j <> p: 下から上に行かない *)
(* pl.(j) = -2: すでに見つけた重心は無視する *)
let j = List.find_opt (fun j -> j <> p && pl.(j) = -2 && ss.(j) * 2 > n) al.(i) in
match j with
| Some j ->
ss.(i) <- n - ss.(j);
decomp i j pc n
| None ->
pl.(i) <- pc;
List.iter (fun j -> if pl.(j) = -2 then decomp i j i ss.(j)) al.(i) in
let () = decomp (-1) 0 (-1) (Array.length al) in
pl
let () =
let n = Scanf.scanf " %d" Fun.id in
let al = Array.make n [] in
let () =
for i = 1 to n - 1 do
Scanf.scanf " %d %d" (fun a b ->
let a = a - 1 in
let b = b - 1 in
al.(a) <- b :: al.(a);
al.(b) <- a :: al.(b))
done in
let pl = subtree_size al |> centroid_decomp al in
for i = 0 to n - 1 do
let p = pl.(i) in
let p = if p >= 0 then p + 1 else p in
print_int p;
if i < n - 1 then
print_char ' '
else
print_newline()
done
Submission Info
| Submission Time | |
|---|---|
| Task | Ex - Balanced Tree |
| User | iwashisnake |
| Language | OCaml (4.10.0) |
| Score | 600 |
| Code Size | 1369 Byte |
| Status | AC |
| Exec Time | 141 ms |
| Memory | 23248 KiB |
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 600 / 600 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | sample_01.txt, sample_02.txt |
| All | min.txt, random_01.txt, random_02.txt, random_03.txt, random_04.txt, random_05.txt, random_06.txt, random_07.txt, random_08.txt, random_09.txt, random_10.txt, random_11.txt, random_12.txt, random_13.txt, random_14.txt, random_15.txt, random_16.txt, random_17.txt, random_18.txt, random_19.txt, random_20.txt, random_21.txt, random_22.txt, random_23.txt, random_24.txt, random_25.txt, random_26.txt, random_27.txt, random_28.txt, random_29.txt, random_30.txt, random_31.txt, random_32.txt, random_33.txt, random_34.txt, random_35.txt, random_36.txt, random_37.txt, random_38.txt, random_39.txt, random_40.txt, random_41.txt, random_42.txt, sample_01.txt, sample_02.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| min.txt | AC | 7 ms | 3732 KiB |
| random_01.txt | AC | 99 ms | 13704 KiB |
| random_02.txt | AC | 63 ms | 10460 KiB |
| random_03.txt | AC | 98 ms | 13796 KiB |
| random_04.txt | AC | 80 ms | 11780 KiB |
| random_05.txt | AC | 101 ms | 13704 KiB |
| random_06.txt | AC | 51 ms | 9204 KiB |
| random_07.txt | AC | 99 ms | 13816 KiB |
| random_08.txt | AC | 53 ms | 9276 KiB |
| random_09.txt | AC | 100 ms | 13752 KiB |
| random_10.txt | AC | 35 ms | 8108 KiB |
| random_11.txt | AC | 99 ms | 13820 KiB |
| random_12.txt | AC | 47 ms | 9332 KiB |
| random_13.txt | AC | 128 ms | 19160 KiB |
| random_14.txt | AC | 82 ms | 15524 KiB |
| random_15.txt | AC | 141 ms | 23248 KiB |
| random_16.txt | AC | 25 ms | 7400 KiB |
| random_17.txt | AC | 137 ms | 20252 KiB |
| random_18.txt | AC | 126 ms | 19780 KiB |
| random_19.txt | AC | 94 ms | 13824 KiB |
| random_20.txt | AC | 38 ms | 8420 KiB |
| random_21.txt | AC | 97 ms | 13776 KiB |
| random_22.txt | AC | 74 ms | 11448 KiB |
| random_23.txt | AC | 96 ms | 13684 KiB |
| random_24.txt | AC | 58 ms | 10248 KiB |
| random_25.txt | AC | 86 ms | 13632 KiB |
| random_26.txt | AC | 12 ms | 6380 KiB |
| random_27.txt | AC | 82 ms | 13632 KiB |
| random_28.txt | AC | 76 ms | 12824 KiB |
| random_29.txt | AC | 84 ms | 13740 KiB |
| random_30.txt | AC | 83 ms | 13204 KiB |
| random_31.txt | AC | 107 ms | 13844 KiB |
| random_32.txt | AC | 85 ms | 12040 KiB |
| random_33.txt | AC | 104 ms | 13816 KiB |
| random_34.txt | AC | 9 ms | 5788 KiB |
| random_35.txt | AC | 106 ms | 13912 KiB |
| random_36.txt | AC | 88 ms | 12140 KiB |
| random_37.txt | AC | 90 ms | 13640 KiB |
| random_38.txt | AC | 34 ms | 8156 KiB |
| random_39.txt | AC | 85 ms | 13624 KiB |
| random_40.txt | AC | 43 ms | 9140 KiB |
| random_41.txt | AC | 88 ms | 13688 KiB |
| random_42.txt | AC | 54 ms | 10388 KiB |
| sample_01.txt | AC | 6 ms | 3636 KiB |
| sample_02.txt | AC | 2 ms | 3716 KiB |