import std/strutils import std/sequtils proc run03_2(): string = const input = staticRead"../input/day03.txt" var res = 0 let lines = splitLines(input).filter(proc(p: string): bool = p != "") for lineSet in lines.distribute(int(lines.len/3)): let line1 = lineSet[0] let line2 = lineSet[1] let line3 = lineSet[2] let badge = line1.toSeq().filter(proc(p: char): bool = line2.contains(p) and line3.contains(p))[0] let prio = if int(badge) >= int('a'): int(badge) - int('a') + 1 else: int(badge) - int('A') + 27 # echo badge, " : ", prio res += prio return intToStr(res) when not defined(js): echo run03_2() else: proc js_run03_2(): cstring {.exportc.} = return cstring(run03_2())