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)
posted @ 2025-08-07 20:44  kodil  阅读(6)  评论(0)    收藏  举报