农夫约翰的 N 头奶牛排成一排,每头奶牛都用其品种 ID 进行描述。
如果两头相同品种的牛靠得太近,它们就会吵架。
具体的说,如果同一品种的两头奶牛在队列中的位置相差不超过 K,我们就称这是一对拥挤的牛。
请计算品种 ID 最大的拥挤奶牛对的品种 ID。
输入格式
第一行包含两个整数 N 和 K。
接下来 N 行,每行包含一个整数表示队列中一头奶牛的品种 ID。
输出格式
输出品种 ID 最大的拥挤奶牛对的品种 ID。
如果不存在拥挤奶牛队,则输出 −1。
数据范围
1≤N≤50000,
1≤K<N,
品种 ID 范围 [0,
1
0
6
10^6
106]。
输入样例:
6 3
7
3
4
2
3
4
输出样例:
4
样例解释
一对品种 ID 为 3 的奶牛以及一对品种 ID 为 4 的奶牛属于拥挤奶牛对。
所以,最大拥挤奶牛对的品种 ID 为 4。
简单cpp模拟
#include <bits/stdc++.h>
using namespace std;
const int N = 1e6 + 10;
int a[N];
int main()
{
ios::sync_with_stdio(false);cin.tie(0);
int n,k;cin>>n>>k;
int res=-1;
fill(a,a+1000010,-k);
for (int i=1,id;i<=n;++i)
{
cin>>id;
if(i-a[id]<=k)
res=max(res,id);
a[id]=i;
}
cout<<res<<endl;
return 0;
}