#include "aoc.h" #include "iccmp.h" #include "util.h" #include #include void part1(void) { struct icc icc; icc_init(&icc); icc_parse_inst(&icc, aoc.input, aoc.input_size); while (icc.state != ICC_HALT) { icc_step_inst(&icc); switch (icc.state) { case ICC_INPUT: mi_setv(&icc.in, 1, MI_POS); break; case ICC_OUTPUT: aoc_debug("OUTPUT : %s\n", icc_literal_str(&icc, &icc.out, 0)); break; } } aoc.answer = aprintf("%s", icc_literal_str(&icc, &icc.out, 0)); aoc.solution = "2662308295"; icc_deinit(&icc); } void part2(void) { struct icc icc; icc_init(&icc); icc_parse_inst(&icc, aoc.input, aoc.input_size); while (icc.state != ICC_HALT) { icc_step_inst(&icc); switch (icc.state) { case ICC_INPUT: mi_setv(&icc.in, 2, MI_POS); break; case ICC_OUTPUT: aoc_debug("OUTPUT : %s\n", icc_literal_str(&icc, &icc.out, 0)); break; } } aoc.answer = aprintf("%s", icc_literal_str(&icc, &icc.out, 0)); aoc.solution = "63441"; icc_deinit(&icc); }