A. Best Subsegment
time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output
You are given array a1,a2,…,ana1,a2,…,an. Find the subsegment al,al+1,…,aral,al+1,…,ar (1≤l≤r≤n1≤l≤r≤n) with maximum arithmetic mean 1r−l+1∑i=lrai1r−l+1∑i=lrai(in floating-point numbers, i.e. without any rounding).
If there are many such subsegments find the longest one.
Input
The first line contains single integer nn (1≤n≤1051≤n≤105) — length of the array aa.
The second line contains nn integers a1,a2,…,ana1,a2,…,an (0≤ai≤1090≤ai≤109) — the array aa.
Output
Print the single integer — the length of the longest subsegment with maximum possible arithmetic mean.
Example
input
Copy
5
6 1 6 6 0
output
Copy
2
Note
The subsegment [3,4][3,4] is the longest among all subsegments with maximum arithmetic mean.
找到一段数组中平均值最大,且最长的一段长度
先要求最大,再要求最长
直接找数组最大的,然后看他左右和他相等的个数
ac:
#include<bits/stdc++.h>
#define rep(i,l,r) for(int i=l;i<r;i++)
#define mem(gv) memset(gv,0,sizeof(gv))
#define ll long long
#define MAXN 100005
using namespace std;
int a[MAXN]={0};
int main()
{
int n,maxx=-1,maxs=-1;
scanf("%d",&n);
for(int i=0;i<n;i++)
{
scanf("%d",&a[i]);
maxx=max(maxx,a[i]);
}
int sum=0;
for(int i=0;i<n;i++)
{
if(a[i]==maxx)
{
sum++;
maxs=max(maxs,sum);
}
else sum=0;
}
cout<<maxs<<endl;
return 0;
}