func part1[lines: array] : void let sum = 0 for i in 0..array.size(lines) let line: str = array.nth(lines, i) let largest = 0 for j in 0..str.len(line) for k in (j+1)..str.len(line) let s: str = mem.alloc(3) str.set(s, 0, line[j]) str.set(s, 1, line[k]) str.set(s, 2, 0) let n: i64 = str.parse_i64(s) if n > largest largest = n sum = sum + largest io.println_i64(sum) // had to cheat this one func part2_rec[bank: str, start: i64, remaining: i64] : i64 let largest = 0 let largest_idx: i64 = start let len: i64 = str.len(bank) for i in (start)..(len-remaining+1) let v: i64 = bank[i] - '0' if v > largest largest = v largest_idx = i if remaining > 1 return largest * math.pow(10, remaining - 1) + part2_rec(bank, largest_idx + 1, remaining - 1) else return largest func part2[lines: array] : void let sum = 0 for i in 0..array.size(lines) let line: str = array.nth(lines, i) sum = sum + part2_rec(line, 0, 12) io.println_i64(sum) func main[] : i64 let lines: array = io.read_file("input.txt") |> str.split("\n") part1(lines) part2(lines)