add day 21
[advent21.git] / 21a.c
diff --git a/21a.c b/21a.c
new file mode 100644 (file)
index 0000000..fa54a2e
--- /dev/null
+++ b/21a.c
@@ -0,0 +1,28 @@
+#include <stdio.h>
+
+void move (int roll, int *p, int *score)
+{
+       *p = (*p+roll*9+6)%10;
+       if (*p == 0)
+               *p = 10;
+       *score += *p;
+}
+
+int main()
+{
+       int p1, p2, p1score = 0, p2score = 0;
+       if (2 != scanf(
+                       "Player 1 starting position: %d\n"
+                       "Player 2 starting position: %d\n", &p1, &p2))
+               return 1;
+
+       int roll = 0;
+       while (p1score < 1000 && p2score < 1000) {
+               if (roll%2==0)
+                       move(roll, &p1, &p1score);
+               else
+                       move(roll, &p2, &p2score);
+               roll++;
+       }
+       printf("%d\n", (roll%2==0 ? p1score : p2score)*roll*3);
+}