function parse_input() rules = [] manuals = [] open("input.txt") do f for line in readlines(f) if length(line) == 0 continue end if '|' in line num1, num2 = split(line, '|') push!(rules, (parse(Int, num1), parse(Int, num2))) else push!(manuals, map(s -> parse(Int, s), split(line, ','))) end end end return rules, manuals end function check_rules(rules, page) for (n1, n2) in rules if !(n1 in page) || !(n2 in page) continue end n1_pos = findfirst(item -> item == n1, page) n2_pos = findfirst(item -> item == n2, page) if n1_pos > n2_pos return 0 end end return page[(length(page) รท 2) + 1] end function main() rules, manuals = parse_input() result = sum(map(m -> check_rules(rules, m), manuals)) println(result) end if abspath(PROGRAM_FILE) == @__FILE__ main() end