diff options
| author | Bond_009 <bond.009@outlook.com> | 2022-12-01 22:30:22 +0100 |
|---|---|---|
| committer | Bond_009 <bond.009@outlook.com> | 2022-12-01 22:30:22 +0100 |
| commit | baf4910870a6e8999802b9a4a22eabd4142a34e3 (patch) | |
| tree | 2d11443dc21e53bd0d99d015cf789937d6d95862 /8 | |
| parent | 49d0c908f24b2c193c9deed1716fe36061ba26a1 (diff) | |
Move all Advent of Codes into one repo
Diffstat (limited to '8')
| -rw-r--r-- | 8/input | 636 | ||||
| -rw-r--r-- | 8/part1.c | 74 | ||||
| -rw-r--r-- | 8/part2.c | 109 |
3 files changed, 0 insertions, 819 deletions
diff --git a/8/input b/8/input deleted file mode 100644 index b97230b..0000000 --- a/8/input +++ /dev/null @@ -1,636 +0,0 @@ -acc -13 -jmp +37 -acc -19 -jmp +1 -jmp +1 -jmp +413 -acc +10 -jmp +194 -jmp +587 -jmp +388 -acc +48 -nop +284 -acc +35 -jmp +239 -acc +0 -jmp +58 -acc +22 -acc +45 -acc +25 -acc +23 -jmp +544 -jmp +610 -nop +273 -jmp +554 -jmp +584 -acc +30 -jmp +481 -acc +29 -jmp +342 -acc +9 -acc +23 -nop +377 -jmp +483 -acc +33 -jmp +128 -nop +560 -nop +437 -jmp +485 -acc +2 -acc +30 -jmp +456 -acc +0 -acc -15 -nop +126 -acc +47 -jmp +299 -acc +36 -acc +9 -jmp -21 -acc +10 -acc +26 -acc -3 -acc +31 -jmp +337 -nop +517 -jmp +303 -acc +20 -nop -43 -acc +30 -acc +24 -jmp +348 -jmp +158 -acc +23 -acc +16 -acc +40 -jmp +1 -jmp +465 -acc +12 -jmp +276 -acc +0 -acc +32 -acc +43 -jmp +487 -acc +40 -acc +49 -nop +540 -jmp +455 -acc +24 -jmp +481 -acc +30 -nop +256 -acc +29 -acc +14 -jmp +390 -jmp +1 -acc -3 -jmp +1 -jmp +295 -acc +6 -acc +46 -acc +16 -nop +128 -jmp -38 -acc +0 -acc +16 -acc +10 -jmp +185 -acc -19 -acc +0 -acc +23 -acc -16 -jmp +180 -acc +14 -jmp +1 -acc +31 -acc -4 -jmp +439 -jmp +204 -acc +50 -acc +12 -nop +154 -jmp +474 -acc -16 -jmp +511 -acc +6 -acc +32 -jmp +504 -acc +17 -acc +21 -acc -18 -jmp +298 -acc -17 -acc +16 -acc +4 -acc +18 -jmp +18 -acc -10 -acc +26 -acc +36 -jmp +166 -nop -109 -jmp +266 -acc -9 -jmp +306 -nop +324 -acc +16 -acc +33 -acc +18 -jmp -50 -acc +25 -jmp +196 -acc +21 -jmp +308 -jmp +38 -acc +27 -jmp -48 -acc +14 -acc +46 -acc +48 -acc +15 -jmp +223 -acc +0 -acc +12 -jmp -115 -acc +19 -acc +27 -acc +30 -jmp +377 -jmp -144 -jmp +231 -acc +1 -jmp +410 -acc +41 -jmp +138 -acc -13 -acc -8 -acc -7 -acc +25 -jmp +366 -acc +8 -jmp +182 -acc +2 -nop +104 -acc +24 -acc +21 -jmp -43 -acc -8 -acc +37 -acc +23 -jmp +292 -jmp +365 -acc +33 -nop -144 -acc -10 -jmp +387 -acc +13 -acc -6 -acc -12 -nop +134 -jmp +345 -acc +5 -acc +16 -acc +35 -acc +50 -jmp +250 -acc +46 -jmp +105 -acc -6 -nop -152 -jmp +233 -jmp -88 -acc +39 -jmp +59 -acc -4 -acc +47 -jmp +165 -acc +32 -acc +49 -acc +24 -jmp +344 -acc -5 -acc +3 -jmp +359 -acc +27 -jmp +72 -acc +0 -acc +16 -acc +40 -jmp +98 -acc +2 -acc +23 -acc +48 -acc +2 -jmp -33 -jmp -186 -acc +27 -nop -83 -acc +2 -acc +19 -jmp -141 -acc +39 -acc +34 -acc +33 -jmp +282 -jmp +306 -acc +12 -jmp +317 -acc +32 -acc +50 -acc +17 -jmp +52 -acc +3 -acc +35 -jmp +328 -acc +26 -nop +163 -acc +6 -acc +19 -jmp +154 -acc +4 -jmp +1 -jmp +373 -acc -12 -acc +47 -jmp +1 -jmp -234 -acc +45 -acc +46 -acc -14 -acc +50 -jmp -134 -acc +26 -jmp +128 -jmp +233 -acc +23 -nop -133 -jmp -154 -jmp +260 -acc +21 -acc +14 -nop -89 -acc +9 -jmp -113 -acc +10 -acc +5 -jmp +127 -acc -9 -acc +2 -jmp +286 -nop +274 -jmp +93 -acc +46 -acc +36 -jmp +53 -acc +30 -jmp -126 -acc +11 -acc +11 -acc +23 -jmp +296 -nop -100 -jmp +304 -jmp +219 -acc +16 -jmp -93 -acc +12 -jmp +1 -jmp +205 -acc +6 -acc -11 -jmp +202 -jmp +107 -jmp +1 -jmp -224 -acc +24 -acc +50 -acc +37 -jmp +45 -acc +25 -acc -15 -jmp -151 -jmp +1 -acc +47 -jmp -196 -jmp +1 -jmp +300 -jmp +116 -acc +39 -acc +0 -nop -176 -acc -7 -jmp -53 -acc +20 -nop -216 -nop +291 -jmp +38 -acc +0 -acc +32 -acc -19 -jmp -28 -jmp -176 -acc +33 -acc +11 -acc +47 -nop -58 -jmp -203 -acc +48 -acc +50 -acc +41 -jmp -315 -acc -12 -acc +23 -acc +32 -jmp +210 -acc +46 -acc -11 -acc -16 -jmp +103 -acc +25 -nop +95 -acc +9 -jmp -117 -nop +18 -acc -19 -acc +38 -jmp -130 -acc +22 -jmp +25 -nop +201 -nop +205 -acc +14 -jmp -124 -jmp -46 -acc +9 -jmp -257 -acc -19 -acc -17 -acc +36 -acc +24 -jmp -210 -jmp -231 -acc +40 -jmp +46 -nop -192 -acc -13 -acc +7 -acc +33 -jmp +103 -acc +18 -acc +37 -acc -14 -jmp -11 -acc +12 -nop -240 -acc +35 -acc +33 -jmp -274 -acc -9 -acc +24 -jmp -128 -nop -129 -acc -17 -jmp -62 -acc +0 -acc +42 -nop +116 -jmp -44 -acc +16 -jmp +179 -acc -8 -acc +8 -jmp -149 -acc +39 -acc +2 -acc +14 -acc +12 -jmp -373 -jmp +76 -jmp -232 -jmp -385 -acc +22 -acc +41 -acc +28 -jmp -179 -acc +0 -acc +22 -acc +15 -jmp -291 -acc -18 -jmp -222 -acc +45 -acc -15 -jmp +61 -acc +10 -acc +16 -acc +43 -jmp +177 -acc +43 -acc -12 -acc +20 -acc +27 -jmp -13 -acc -14 -jmp -336 -nop -158 -acc +3 -nop -409 -acc +17 -jmp -257 -acc +0 -nop +124 -jmp +1 -jmp +117 -jmp -179 -acc -17 -acc -2 -jmp +1 -jmp -37 -acc +42 -jmp +175 -acc -9 -acc +12 -acc +4 -jmp +69 -acc -7 -jmp +1 -acc +32 -jmp +54 -jmp -444 -acc +7 -jmp -87 -acc -6 -nop -323 -acc +47 -acc -5 -jmp -143 -jmp +1 -nop -44 -acc +27 -acc +21 -jmp -184 -jmp -404 -jmp -70 -acc +32 -jmp -13 -acc +0 -nop -452 -acc +1 -acc +31 -jmp -77 -jmp -401 -acc +42 -jmp -428 -nop -120 -acc -17 -nop -75 -acc +6 -jmp +20 -jmp -291 -acc +7 -jmp +37 -acc +10 -acc +15 -jmp +1 -acc +11 -jmp -363 -acc -14 -nop -321 -jmp -40 -acc +41 -acc +31 -jmp +58 -jmp -493 -acc +32 -acc -10 -acc +44 -jmp -211 -acc +47 -acc +23 -jmp -241 -jmp -224 -acc -1 -jmp -350 -acc +8 -jmp -280 -acc -19 -acc +0 -acc +17 -jmp -274 -acc +27 -acc +11 -jmp -82 -acc +48 -acc +27 -jmp -518 -acc +3 -jmp -124 -jmp +1 -jmp -490 -acc +41 -jmp -238 -acc -6 -jmp -386 -jmp -189 -acc -11 -jmp +80 -acc -8 -acc +9 -nop -99 -jmp +56 -acc -18 -jmp -83 -acc +28 -acc +13 -jmp -228 -acc +32 -acc +34 -acc +3 -jmp -272 -nop -410 -acc +13 -acc -17 -jmp -236 -acc +45 -acc +0 -acc +19 -nop +29 -jmp +38 -jmp -75 -acc +7 -acc +33 -acc +40 -jmp -180 -jmp -557 -acc +22 -jmp -249 -acc +44 -acc +45 -acc +2 -acc -19 -jmp -537 -acc +44 -acc +32 -acc -14 -acc +39 -jmp -406 -jmp -488 -acc +14 -acc +41 -jmp -327 -acc +17 -acc +25 -nop -573 -acc +0 -jmp -563 -acc +18 -nop -282 -acc +13 -acc +45 -jmp -325 -acc +41 -acc -10 -nop -47 -nop -223 -jmp -155 -acc +14 -acc +23 -jmp +23 -acc +21 -nop -229 -acc +27 -acc -5 -jmp -95 -acc +2 -acc -10 -nop -451 -jmp -393 -jmp -406 -acc +42 -acc +18 -acc +49 -jmp -307 -acc -11 -jmp +1 -jmp -424 -jmp -192 -acc +49 -acc -1 -acc -17 -jmp -355 -jmp -268 -nop -320 -acc +1 -jmp -134 -acc +46 -jmp -564 -acc +40 -acc +29 -acc +13 -nop -285 -jmp -272 -acc +19 -acc -14 -acc +25 -acc +18 -jmp +1 diff --git a/8/part1.c b/8/part1.c deleted file mode 100644 index d4261be..0000000 --- a/8/part1.c +++ /dev/null @@ -1,74 +0,0 @@ -#include <stdio.h> -#include <stdint.h> -#include <stdlib.h> - -#define INPUT_LEN 650 - -struct Operation -{ - char opcode; - int arg; - char has_been_executed; -}; - -int exe_program(const char *filename) -{ - FILE *file = fopen(filename, "r"); - - // Include space for newline and string terminator - char buffer[16] = { 0 }; - - struct Operation ops[INPUT_LEN]; - size_t opcount = 0; - - while (fgets(buffer, 16, file)) { - struct Operation *op = &ops[opcount++]; - op->has_been_executed = 0; - switch (buffer[0]) - { - // nop - case 'n': - op->opcode = 0; - break; - // acc - case 'a': - op->opcode = 1; - break; - // jmp - case 'j': - op->opcode = 2; - break; - } - - op->arg = atoi(&buffer[4]); - } - - fclose(file); - - struct Operation *cur_op = ops; - int acc = 0; - while (!cur_op->has_been_executed) - { - cur_op->has_been_executed = 1; - switch (cur_op->opcode) - { - case 0: - cur_op++; - break; - case 1: - acc += cur_op->arg; - cur_op++; - break; - case 2: - cur_op += cur_op->arg; - break; - } - } - - return acc; -} - -int main(int argc, char *argv[]) -{ - printf("%i\n", exe_program(argv[argc - 1])); -} diff --git a/8/part2.c b/8/part2.c deleted file mode 100644 index 44ebdec..0000000 --- a/8/part2.c +++ /dev/null @@ -1,109 +0,0 @@ -#include <stdio.h> -#include <stdint.h> -#include <stdlib.h> - -#define INPUT_LEN 650 - -struct Operation -{ - char opcode; - int arg; - char has_been_executed; -}; - -int execute(struct Operation *ops, size_t opcount) -{ - struct Operation *cur_op = ops; - int acc = 0; - do { - if (cur_op->has_been_executed) { - return -1; - } - - cur_op->has_been_executed = 1; - switch (cur_op->opcode) - { - case 0: - cur_op++; - break; - case 1: - acc += cur_op->arg; - cur_op++; - break; - case 2: - cur_op += cur_op->arg; - break; - } - } while (cur_op < ops + opcount); - - return acc; -} - -int exe_program(const char *filename) -{ - FILE *file = fopen(filename, "r"); - - // Include space for newline and string terminator - char buffer[16] = { 0 }; - - struct Operation ops[INPUT_LEN]; - size_t opcount = 0; - - while (fgets(buffer, 16, file)) { - struct Operation *op = &ops[opcount++]; - op->has_been_executed = 0; - switch (buffer[0]) - { - // nop - case 'n': - op->opcode = 0; - break; - // acc - case 'a': - op->opcode = 1; - break; - // jmp - case 'j': - op->opcode = 2; - break; - } - - op->arg = atoi(&buffer[4]); - } - - fclose(file); - - struct Operation *cur_op = ops; - int flip_previous = 0; - do { - if (flip_previous) { - (cur_op - 1)->opcode ^= 2; - flip_previous = 0; - } - - if (cur_op->opcode == 1 - || (cur_op->opcode == 0 && cur_op->arg <= 0) - || (cur_op->opcode == 2 && cur_op->arg >= 0)) { - continue; - } - - cur_op->opcode ^= 2; - flip_previous = 1; - - for (size_t i = 0; i < opcount; i++) { - ops[i].has_been_executed = 0; - } - - int acc = execute(ops, opcount); - if (acc != -1) { - return acc; - } - } while (++cur_op < ops + opcount); - - return -1; -} - -int main(int argc, char *argv[]) -{ - printf("%i\n", exe_program(argv[argc - 1])); -} |
