Files
zern/examples/puzzles/aoc2025_01.zr
2025-12-22 21:21:15 +01:00

53 lines
1.4 KiB
Plaintext

func part1[lines: array] : void
let password: i64 = 0
let dial: i64 = 50
for i in 0..array.size(lines)
let line: str = array.nth(lines, i)
let dir: u8 = line[0]
let n: i64 = str.substr(line, 1, str.len(line) - 1) |> str.parse_i64()
if dir == 'L'
dial = dial - n
while dial < 0
dial = 100 + dial
else
dial = dial + n
while dial >= 100
dial = dial - 100
if dial == 0
password = password + 1
io.println_i64(password)
func part2[lines: array] : void
let password: i64 = 0
let dial: i64 = 50
for i in 0..array.size(lines)
let line: str = array.nth(lines, i)
let dir: u8 = line[0]
let n: i64 = str.substr(line, 1, str.len(line) - 1) |> str.parse_i64()
if dir == 'L'
for i in 0..n
dial = dial - 1
if dial == 0
password = password + 1
if dial == -1
dial = 99
else
for i in 0..n
dial = dial + 1
if dial == 100
dial = 0
password = password + 1
io.println_i64(password)
func main[] : i64
let lines: array = io.read_file("input.txt") |> str.split("\n")
part1(lines)
part2(lines)