summary refs log tree commit diff homepage
diff options
context:
space:
mode:
-rw-r--r--2020/day10.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/2020/day10.c b/2020/day10.c
index 789f2b1..261d96b 100644
--- a/2020/day10.c
+++ b/2020/day10.c
@@ -5,9 +5,18 @@ static int compar(const void *_a, const void *_b) {
 	const int *b = _b;
 	return *a - *b;
 }
+static int list[256];
+static int len;
+static long tail[256];
+static long chains(int i) {
+	if (i == len - 1) tail[i] = 1;
+	if (tail[i]) return tail[i];
+	for (int j = i + 1; j <= i + 3 && j < len; ++j) {
+		if (list[j] - list[i] <= 3) tail[i] += chains(j);
+	}
+	return tail[i];
+}
 int main(void) {
-	int list[256];
-	int len = 0;
 	while (EOF != scanf("%d\n", &list[len])) {
 		len++;
 	}
@@ -21,4 +30,5 @@ int main(void) {
 		if (list[i] - list[i-1] == 3) j3++;
 	}
 	printf("%d\n", j1 * j3);
+	printf("%ld\n", chains(0));
 }
umn HTML <table>. 2019-02-18Add Tag class to hiJune McEnroe 2019-02-17Generate HTML with hi -n -f html -o anchorJune McEnroe Running hi twice to insert stuff between the head and the content is a bit of a hack but oh well. 2019-02-17Add hi -f html -o anchor for line number linksJune McEnroe 2019-02-17Simplify temp trap in upJune McEnroe 2019-02-17Add line numbers to hiJune McEnroe Renames previous -n option to -m to stay consistent with cat -n. Prefixing lines with line numbers affects where the first tab indent ends up relative to the text above it. Not sure if it's worth fixing somehow. 2019-02-17Always split spans after newlinesJune McEnroe Simplifies ANSI and IRC output code, and prepares for line numbered output. 2019-02-15Color format specifiers light cyan in vimJune McEnroe 2019-02-15Highlight Interp as yellowJune McEnroe 2019-02-15Highlight strings in sh command substitutionsJune McEnroe 2019-02-15Add nmap gpJune McEnroe 2019-02-14Avoid newline when copying URL to pasteboardJune McEnroe 2019-02-13Add forgotten "sixth" book of H2G2June McEnroe