C. Balanced Team
题意: 给n个数, 选m个数,这m个数的最大最小差值小于等于5。 输入最大的m值。
思路: 排序+二分,枚举每个数二分求出最大值
#include<iostream>
typedef long long ll
;
const int inf
=0x3f3f3f3f;
const int inn
=0x80808080;
using namespace std
;
int main(){
const int maxm
=2e5+5;
int n
;
cin
>>n
;
int a
[maxm
];
for(int i
=0;i
<n
;i
++){
cin
>>a
[i
];
}
sort(a
,a
+n
);
int ans
=0;
for(int i
=0;i
<n
;i
++){
int temp
=upper_bound(a
,a
+n
,a
[i
]+5)-a
-1;
temp
=temp
-i
+1;
if(temp
>ans
){
ans
=temp
;
}
}
cout
<<ans
<<endl
;
return 0;
}
转载请注明原文地址: https://yun.8miu.com/read-29576.html