import std/strutils import std/sequtils proc run04_1(): string = const input = staticRead"../input/day04.txt" var ctr = 0 let lines = splitLines(input).filter(proc(p: string): bool = p != "") for line in lines: let pairs = line.split(",") let sec1s = parseInt(pairs[0].split("-")[0]) let sec1e = parseInt(pairs[0].split("-")[1]) let sec2s = parseInt(pairs[1].split("-")[0]) let sec2e = parseInt(pairs[1].split("-")[1]) if sec1s <= sec2s and sec2e <= sec1e: ctr+=1 # sec2 in sec1 echo "[", sec2s, "..", sec2e, "]", " fully in ", "[", sec1s, "..", sec1e, "]" elif sec2s <= sec1s and sec1e <= sec2e: ctr+=1 # sec1 in sec2 echo "[", sec1s, "..", sec1e, "]", " fully in ", "[", sec2s, "..", sec2e, "]" else: echo "[", sec1s, "..", sec1e, "]", " no overlap ", "[", sec2s, "..", sec2e, "]" return intToStr(ctr) when not defined(js): echo run04_1() else: proc js_run04_1(): cstring {.exportc.} = return cstring(run04_1())