2.c 669 B

123456789101112131415161718192021222324252627282930313233343536
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #define BUFSZ 1024
  5. char buf[BUFSZ];
  6. int valuetbl[3] = {1, 2, 3};
  7. int wintbl[3][3] = {
  8. {3, 6, 0},
  9. {0, 3, 6},
  10. {6, 0, 3}
  11. };
  12. char decodetbl[3][3] = {
  13. {'C', 'A', 'B'},
  14. {'A', 'B', 'C'},
  15. {'B', 'C', 'A'}
  16. };
  17. int score(char a, char b) {
  18. b = decodetbl[a - 'A'][b - 'X'];
  19. return valuetbl[b - 'A'] + wintbl[a - 'A'][b - 'A'];
  20. }
  21. int main() {
  22. FILE *fp = fopen("input", "r");
  23. if (fp == NULL) return -1;
  24. int scr = 0;
  25. while (fgets(buf, BUFSZ, fp)) {
  26. if (strlen(buf) <= 1) continue;
  27. scr += score(buf[0], buf[2]);
  28. }
  29. printf("%d\n", scr);
  30. return 0;
  31. }