1 条题解

  • 0
    @ 2026-1-30 18:37:10
    #include<bits/stdc++.h>
    using namespace std;
    int arr[100100];  // 存储每场获胜队伍的编号
    int n;            // 比赛的总场数
    
    int main() {
        // [1] 输入比赛的总场数n
        cin>>n;
        // [2] 输入n场比赛的获胜队伍编号,依次存入数组arr
        for(int i=0;i<n;i++){
            cin>>arr[i];
        }
        // [3] 初始化变量:当前连胜场次sum(初始为1,单场默认1场)、最大连胜场次max_sum、对应队伍编号max_num
        int sum=1,max_sum=0,max_num=0;
        // [4] 遍历比赛场次(从第2场开始,对比当前与下一场的获胜队伍)
        for(int i=1;i<n;i++){
            // [5] 如果当前场次与上一场的获胜队伍相同,当前连胜场次+1
            if(arr[i]==arr[i-1]){
                sum++; 
            }else{
                // [6] 若当前连胜场次超过之前记录的最大值,更新最大连胜场次和对应队伍
                if(max_sum<sum){
                    max_sum=sum;
                    max_num=arr[i-1];
                }
                // [7] 切换获胜队伍时,重置当前连胜场次为1
                sum=1; 
            }
        }
        // [8] 处理最后一段连续获胜的队伍(避免循环结束后遗漏更新)
        if(max_sum<sum){
            max_sum=sum;
            max_num=arr[n-1];
        }
        // [9] 输出连胜场次最多的队伍编号
        cout<<max_num;
        return 0;
    }
    
    • 1

    信息

    ID
    1200
    时间
    1000ms
    内存
    256MiB
    难度
    1
    标签
    递交数
    1
    已通过
    1
    上传者