你可能听说过“石头剪刀布”的游戏。
这个游戏在牛当中同样流行,它们称之为“蹄子剪刀布”。
游戏的规则非常简单,两头牛相互对抗,数到三之后各出一个表示蹄子,剪刀或布的手势。
蹄子赢剪刀,剪刀赢布,布赢蹄子。
例如,第一头牛出“蹄子”手势,第二头牛出“布”手势,则第二头牛获胜。
如果两头牛出相同的手势,则算平局。
农夫约翰的两头奶牛正在进行 N 轮“蹄子剪刀布”对抗,他看的十分入迷。
不幸的是,虽然他可以看到奶牛正在做出三种不同类型的手势,但他却无法分辨出哪一个代表“蹄子”,哪一个代表“布”以及哪一个代表“剪刀”。
不知道这三种手势的具体含义的情况下,农夫约翰给这三种手势分配了编号 1,2,31,2,3。
手势 11 可能代表“蹄子”,可能代表“剪刀”,也可能代表“布”,反正他傻傻分不清楚。
给出两头奶牛在 NN 场比赛中所做出的具体手势对应的编号,请你判断第一头奶牛最多可能赢多少盘对抗。

输入格式

第一行包含整数 NN。
接下来 NN 行,每行包含两个整数(11 或 22 或 33),表示两头奶牛在一轮对抗中所出的手势对应的编号。

输出格式

输出第一头奶牛可能获胜的最大场次数。

数据范围

1≤N≤1001≤N≤100

输入样例:

5 1 2 2 2 1 3 1 1 3 2

输出样例:

2

样例解释

此样例的一种解决方案是,11 表示剪刀,22 表示蹄子,33 表示布。
这样,第一头奶牛可以赢得 (1,3)(1,3) 和 (3,2)(3,2) 两场比赛。image.png


  1. #include <iostream>
  2. #include <cstring>
  3. #include <algorithm>
  4. using namespace std;
  5. int n;
  6. int main() {
  7. cin >> n;
  8. int a = 0, b = 0;
  9. while (n --) {
  10. int x,y;
  11. cin >> x >> y;
  12. x--; y--;
  13. //x-1赢x
  14. if ((x + 2) % 3 == y) a++;
  15. //x+1赢x
  16. else if ((x + 1) % 3 == y) b++;
  17. }
  18. cout << max(a,b) << endl;
  19. return 0;
  20. }