% import sat. % sub 4 seconds for sat
import cp. % 0.15 seconds for cp, ff, split
import util.
main =>
nolog,
% Data = read_file_lines("test"),
Data = read_file_lines("day"),
Rs = [[P[1], P[2]].map(to_int) : D in Data, P=split(D,"-")],
IP :: 0..max(Rs.flatten),
% IP = new_bv(32)
foreach (R in Rs)
% (bv_gt(R[1].int_to_bv,IP) #\/ bv_gt(IP,R[2].int_to_bv)) % doesn't work
(IP #< R[1] #\/ IP #> R[2])
end,
% Sols = solve_all([$seq],IP),
Sols = solve_all([ffs,split],IP),
printf("Answer Part 1: %w\n",min(Sols)),
printf("Answer Part 2: %w\n",len(Sols)).