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