Browse Source

Improve day21p2

Should now properly handle all inputs
master
mid-kid 6 years ago
parent
commit
752998b08a
  1. 13
      day21p2/main.c

13
day21p2/main.c

@ -177,10 +177,15 @@ int main(int argc, char *argv[])
while (regs[ip] >= 0 && regs[ip] < instructions_len) {
struct instr *instr = &instructions[regs[ip]];
// Day 21 part 2 optimizations...
if (regs[ip] == 17) {
regs[5] >>= 8;
regs[ip] = 8;
// Day 21 part 2 optimization...
if (instr->i == INSTR_GTIR && instr->a == 0x100) {
reg_t *reg = &regs[instr->b];
if (0x100 <= *reg) {
*reg >>= 8;
regs[ip] = 8;
} else {
regs[ip] = 28;
}
continue;
}

Loading…
Cancel
Save