aoc_2025_day_02.pai

< Prev | Back | Next >


# https://adventofcode.com/2025/day/2

function range
    let r = {@1.split('-')}
    return {
        'from' => r[1].int(),
        'to' => r[2].int(),
    }
end

let ranges = {i.\range() for i in ${stdin}.split(',')}
let invalid_ids = {,}

function range_invalid_ids
    for i in {str(i) for i in @1.from:@1.to} do
        let lhs rhs = {i[1:(len(i)//2)]} {i[(len(i)//2 + 1)::]}
        if {lhs = rhs} then
            let invalid_ids{} = {int(i)}
        end
    end
end

for range in {ranges} do
    call range_invalid_ids {range}
end

print {invalid_ids.sum()}

< Prev | Back | Next >