Advertisement

2022年上海11月月赛T3最长平台

阅读量:

T3最长平台

T3最长平台

题目描述

给定一个整数数列 a_1,a_2,a_n,请找出最长平台,并输出最长平台的数量(数字相等但位置不同的平台算作不同的平台)。

所谓平台,就是指数列中一段连续的、完全相等的数字,单个数字可以成为一个平台。

输入格式

第一行:单个整数 n
第二行:n个整数 a_1,a_2,\dots,a_n

输出格式

两个整数:表示最长平台的长度与最长平台的数量

数据范围

对于 50% 的数据,n≤1000
对于 100% 的数据,n≤500,000;
1≤a_i ≤1,000,000;

样例数据

复制代码
    输入:
    7
    2 2 2 1 3 3 3
    输出:
    3 2
    说明:
    最长平台为2 2 2或3 3 3
    输入:
    5
    3 1 4 1 5
    输出:
    1 5
    说明:
    每个数字单独成一个平台
    
    
      
      
      
      
      
      
      
      
      
      
      
      
      
      
    

思路

复制代码
    枚举记录平台并打擂台求最长平台。
    输出第1行。
    数组记录平台个数,根据最长平台查找数组。
    输出第2行。
    
    
      
      
      
      
    
复制代码
    #include<bits/stdc++.h>
    using namespace std; 
    int main() 
    {
    int n,a[100001]; 
    int m=-9999,len=1,ans[100001];
    int i;
    cin>>n;
    a[0]=-1e9;
    for(i=1;i<=n;i++){
        cin>>a[i];
    	if(a[i]==a[i-1])
            len++;
    	else
            len=1;
    	if(len>m){
            m=len;
        }
        ans[len]++;
    }
    cout<<m<<" ";
    cout<<ans[m]<<endl;
    return 0;
    }
    
    
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
    

全部评论 (0)

还没有任何评论哟~