summary refs log tree commit diff homepage
diff options
context:
space:
mode:
-rw-r--r--2020/day06.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/2020/day06.c b/2020/day06.c
new file mode 100644
index 0000000..07c40a3
--- /dev/null
+++ b/2020/day06.c
@@ -0,0 +1,21 @@
+#include <stdio.h>
+#include <stdlib.h>
+int main (void) {
+	size_t cap = 0;
+	char *buf = NULL;
+	unsigned groups[512] = {0};
+	for (int i = 0; 0 < getline(&buf, &cap, stdin);) {
+		if (buf[0] == '\n') {
+			i++;
+			continue;
+		}
+		for (char *ch = buf; *ch && *ch != '\n'; ++ch) {
+			groups[i] |= 1 << (*ch - 'a');
+		}
+	}
+	int sum = 0;
+	for (int i = 0; i < 512; ++i) {
+		sum += __builtin_popcount(groups[i]);
+	}
+	printf("%d\n", sum);
+}
akefile?id=ad70f283b3818756ba710af003ec2469d23fdf7c&follow=1'>Add all target to git.causal.agency MakefileJune McEnroe 2021-01-20Remove Lua supportJune McEnroe 2021-01-20Fix tests for diff spansJune McEnroe 2021-01-20Avoid matching ':' in make tagsJune McEnroe 2021-01-19Prefer tag matches not preceded by [[:alnum:]]June McEnroe 2021-01-19Escape \ and / in mtags search patternsJune McEnroe 2021-01-20Use mtags in source-filterJune McEnroe 2021-01-19Add mtags to generate tags for make and mdocJune McEnroe 2021-01-19Map tags to IDs using only [[:alnum:]-._]June McEnroe 2021-01-19Don't use a pager if reading standard inputJune McEnroe 2021-01-19Support BSD make syntax and match *.amJune McEnroe 2021-01-19Match tab following escaped newline in make assignmentsJune McEnroe 2021-01-18Allow matching lexers using first input lineJune McEnroe