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)
还没有任何评论哟~
