#include #include #include #define BUFFER_SIZE 5 #define score_play(p) (p - 'W') #define win(o, m) (o == m ? 3 : ((o - m == 1 || o - m == -2) ? 0 : 6)) #define score_game(o, m) (score_play(m) + win((o - 'A'), (m - 'X'))) #define win_strategy(o) (o - 'A' + 1 > 2 ? 'X' : o - 'A' + 1 + 'X') #define lose_strategy(o) (o - 'A' - 1 < 0 ? 'Z' : o - 'A' - 1 + 'X') #define draw_strategy(o) (o - 'A' + 'X') int main() { char buf[BUFFER_SIZE], *p, c, opponent, result, me; memset(buf, 0, BUFFER_SIZE); p = buf; unsigned score = 0; while ((c = getchar()) != EOF) { *p++ = c; if (c == '\n') { sscanf(buf, "%c %c", &opponent, &result); me = result == 'X' ? lose_strategy(opponent) : (result == 'Y' ? draw_strategy(opponent) : win_strategy(opponent)); score += score_game(opponent, me); memset(buf, 0, BUFFER_SIZE); p = buf; } } printf("%u\n", score); }