Added AOC 2022 day 04
This commit is contained in:
34
www/statics/aoc/2022/04_solution-2.nim
Normal file
34
www/statics/aoc/2022/04_solution-2.nim
Normal file
@@ -0,0 +1,34 @@
|
||||
import std/strutils
|
||||
import std/sequtils
|
||||
|
||||
proc run04_2(): 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 sec2s <= sec1e) or (sec1s <= sec2e and sec2e <= sec1e):
|
||||
ctr+=1
|
||||
echo "[", sec2s, "..", sec2e, "]", " overlaps ", "[", sec1s, "..", sec1e, "]"
|
||||
elif (sec2s <= sec1s and sec1s <= sec2e) or (sec2s <= sec1e and sec1e <= sec2e):
|
||||
ctr+=1
|
||||
echo "[", sec2s, "..", sec2e, "]", " overlaps ", "[", sec1s, "..", sec1e, "]"
|
||||
else:
|
||||
echo "[", sec1s, "..", sec1e, "]", " nolap ", "[", sec2s, "..", sec2e, "]"
|
||||
|
||||
return intToStr(ctr)
|
||||
|
||||
when not defined(js):
|
||||
echo run04_2()
|
||||
else:
|
||||
proc js_run04_2(): cstring {.exportc.} =
|
||||
return cstring(run04_2())
|
||||
Reference in New Issue
Block a user