summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--22.2/main.cpp20
1 files changed, 20 insertions, 0 deletions
diff --git a/22.2/main.cpp b/22.2/main.cpp
new file mode 100644
index 0000000..0ab6017
--- /dev/null
+++ b/22.2/main.cpp
@@ -0,0 +1,20 @@
+#include <cstdio>
+using namespace std;
+
+int
+main()
+{
+	char move, res;
+	long total = 0;
+	while (scanf("%c %c ", &move, &res) == 2) {
+		move -= 'A';
+		res -= 'X';
+		if (!(0 <= move && move < 3)) throw "bad input";
+		if (!(0 <= res && res < 3)) throw "bad input";
+
+		int outcome = (res - move + 4) % 3; /* 0 loss, 1 draw, 2 win */
+		long score = outcome * 3 + res + 1;
+		total += score;
+	}
+	printf("%ld\n", total);
+}