summary refs log tree commit diff homepage
path: root/2020
diff options
context:
space:
mode:
authorJune McEnroe <june@causal.agency>2020-12-08 00:09:56 -0500
committerJune McEnroe <june@causal.agency>2020-12-08 00:09:56 -0500
commit5eb73422d9c22f9f4dca435ae7127b187cf5440f (patch)
tree954df753327ed37d6ab6d8970004c524c1068958 /2020
parentCheck cons[i].cnt to break out of loop (diff)
downloadaoc-5eb73422d9c22f9f4dca435ae7127b187cf5440f.tar.gz
aoc-5eb73422d9c22f9f4dca435ae7127b187cf5440f.zip
Solve day 8 part 1
Diffstat (limited to '2020')
-rw-r--r--2020/day08.c29
1 files changed, 29 insertions, 0 deletions
diff --git a/2020/day08.c b/2020/day08.c
new file mode 100644
index 0000000..87b4585
--- /dev/null
+++ b/2020/day08.c
@@ -0,0 +1,29 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+static struct Ins {
+	char op[4];
+	int arg;
+} prog[1024];
+static int acc;
+static int pc;
+static void step(void) {
+	if (!strcmp(prog[pc].op, "acc")) {
+		acc += prog[pc].arg;
+	} else if (!strcmp(prog[pc].op, "jmp")) {
+		pc += prog[pc].arg;
+		return;
+	}
+	pc++;
+}
+int main(void) {
+	int i = 0;
+	while (EOF != scanf("%s %d\n", prog[i].op, &prog[i].arg)) {
+		i++;
+	}
+	int ran[1024] = {0};
+	while (!ran[pc]++) {
+		step();
+	}
+	printf("%d\n", acc);
+}