summary refs log tree commit diff homepage
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--2018/day05.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/2018/day05.c b/2018/day05.c
new file mode 100644
index 0000000..5cb9366
--- /dev/null
+++ b/2018/day05.c
@@ -0,0 +1,17 @@
+#include <ctype.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+int main() {
+	char buf[50000];
+	size_t len = fread(buf, 1, sizeof(buf), stdin);
+	for (size_t i = 0; i < len - 1; ++i) {
+		if (tolower(buf[i]) != tolower(buf[i + 1])) continue;
+		if (islower(buf[i]) == islower(buf[i + 1])) continue;
+		len -= 2;
+		memmove(&buf[i], &buf[i + 2], len - i);
+		i = (size_t)-1;
+	}
+	printf("%zu\n", len);
+}