53 lines
1.3 KiB
Plaintext
53 lines
1.3 KiB
Plaintext
func part1[lines: array] : void
|
|
let password = 0
|
|
let dial = 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 = 0
|
|
let dial = 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) |