From 656d6fb7ee07b70d708b9ec922b7d24cf2989617 Mon Sep 17 00:00:00 2001 From: dzwdz Date: Fri, 2 Dec 2022 12:39:37 +0100 Subject: day 2 part 2 --- 22.2/main.cpp | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) (limited to '22.2/main.cpp') diff --git a/22.2/main.cpp b/22.2/main.cpp index 0ab6017..65e76b6 100644 --- a/22.2/main.cpp +++ b/22.2/main.cpp @@ -1,20 +1,29 @@ #include using namespace std; +int +scoreFor(int their, int mine) +{ + int outcome = (mine - their + 4) % 3; /* 0 loss, 1 draw, 2 win */ + return outcome * 3 + mine + 1; +} + int main() { char move, res; - long total = 0; + long total1 = 0, total2 = 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; + int mine = (move + res - 1 + 3) % 3; + + total1 += scoreFor(move, res); + total2 += scoreFor(move, mine); } - printf("%ld\n", total); + printf("%ld\n", total1); + printf("%ld\n", total2); } -- cgit 1.4.1-2-gfad0