1 条题解
-
0
#include <iostream> using namespace std; int main() { int n; // 比赛的总场数 // [1] 输入比赛总场数n cin >> n; int arr[105]; // 存储每场比赛获胜队伍的编号 // [2] 循环输入n场比赛的获胜队伍编号,依次存入数组arr for (int i = 0; i < n; ++i) { cin >> arr[i]; } // [3] 处理特殊情况:比赛场数小于2时,无连胜可能,直接结束程序 if (n < 2) { return 0; } int current_team = arr[0]; // 记录当前正在连胜的队伍编号,初始为第一场获胜队伍 int current_streak = 1; // 记录当前队伍的连胜场次,初始为1(单场默认1场) // [4] 从第2场比赛开始遍历,对比当前场与上一场的获胜队伍 for (int i = 1; i < n; ++i) { // [5] 若当前场获胜队伍与上一场一致,当前队伍连胜场次加1 if (arr[i] == current_team) { current_streak++; } else { // [6] 若当前连胜场次≥2,输出该连胜队伍的编号和对应场次 if (current_streak >= 2) { cout << current_team << " " << current_streak << endl; } // [7] 切换连胜队伍,重置当前连胜队伍和连胜场次为当前场的信息 current_team = arr[i]; current_streak = 1; } } // [8] 处理最后一段连续获胜的队伍,避免循环结束后遗漏符合条件的连胜记录 if (current_streak >= 2) { cout << current_team << " " << current_streak << endl; } return 0; }
- 1
信息
- ID
- 1201
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 1
- 标签
- 递交数
- 1
- 已通过
- 1
- 上传者