fn main [ var lists := list_break(list_break_to_lines(read_lazy(h[0])), ""); var ordering := treeset_init(tuple2(int, int)); for l in lists[0] do [ var p := map(list_break(l, '|'), ston); ordering := treeset_set(ordering, mktuple2(p[0], p[1])); ] var sum := 0; for l in lists[1] do [ var p := map(list_break(l, ','), ston); var p2 := list_sort(class_ord(int).[ equal : lambda(a b : int) [ return a = b; ], less : lambda(a b : int) [ return treeset_test(ordering, mktuple2(a, b)); ], ], p); if p <> p2 then sum += p2[len(p2) shr 1]; ] write(h[1], ntos(sum) + nl); ]