advent-of-code/12023/04/04.lua

43 lines
656 B
Lua

io.input("input")
sum1 = 0
cards = {}
nlines = 198
for i=1,nlines do
cards[i] = 1
end
i = 1
for line in io.lines() do
pwinning, phave = line:match(": ([%d ]+) | ([%d ]+)$")
winning = {}
for win in pwinning:gmatch("%d+") do
winning[win] = true
end
points = 0
count = 0
for have in phave:gmatch("%d+") do
if winning[have] then
points = points==0 and 1 or (points*2)
count = count + 1
end
end
sum1 = sum1 + points
--print(count)
for n = (i+1),(i+count) do
cards[n] = cards[n] + cards[i]
end
i = i + 1
end
print("part 1", sum1)
sum2 = 0
for i,v in ipairs(cards) do
--print(i,v)
sum2 = sum2 + v
end
print("part 2:", sum2)