2025-7-30
2025-7-30
codeforces-div3-588-c
题意描述
给定一个序列,任意取元素求最大可能极差<=5的子序列。
思路分析
由于尽可能大,所有先排序,对于每个元素\(a_i\),找到后面一个大于\(a_i+5\)的元素,更新答案即可。
解题代码
void solve()
{
int n; read(n);
vector<int> a(n);
for(auto& x : a)read(x);
sort(all(a));
int ans = 0;
for(int i = 0; i < n; ++i){
int j = upper_bound(a.begin() + i + 1,a.end(), a[i] + 5) - a.begin();
if(j == n + 1)continue;
ans = max(ans, j - i);
}
print(ans);
}
- 时间复杂度o(n)

浙公网安备 33010602011771号