This commit is contained in:
Danny Hpy 2023-01-23 10:24:51 +01:00
parent 41a34a2008
commit 45561fc5cb
Signed by: dannyhpy
GPG Key ID: 7139FBBEA22D1CEC
2 changed files with 41 additions and 0 deletions

BIN
2022/04/both Executable file

Binary file not shown.

41
2022/04/both.nim Normal file
View File

@ -0,0 +1,41 @@
import
std/strformat,
std/strutils
import
../../adventofcode
let input = adventofcode.getInput()
var score = 0
for pair in input.splitLines:
let sepIdx = pair.find(',')
assert sepIdx != -1
let range1Str = pair[0 ..< sepIdx]
let range2Str = pair[sepIdx + 1 .. ^1]
var range1: set[0 .. 65535]
var range2: set[0 .. 65535]
for i in 0 .. 1:
let rangeStr = block:
if i == 0: range1Str
else: range2Str
let rangeStrSepIdx = rangeStr.find('-')
assert rangeStrSepIdx != -1
let rangeStart = parseInt rangeStr[0 ..< rangeStrSepIdx]
let rangeEnd = parseInt rangeStr[rangeStrSepIdx + 1 .. ^1]
if i == 0: range1 = {rangeStart .. rangeEnd}
else: range2 = {rangeStart .. rangeEnd}
var total = range1 + range2
when not defined(second):
if range1.len == total.len or range2.len == total.len:
score += 1
else:
if total.len != (range1.len + range2.len):
score += 1
echo fmt"Answer: {score}"