题解 | #选数#

选数

https://www.nowcoder.com/practice/50636077fde843c09bf915d0aef57a99

#include <bits/stdc++.h>

using namespace std;

int main(){
    int n,k;
    long long s;
    cin >> n >> k >> s;
    vector<int> a(n);
    for(int i = 0; i < n; i++) cin >> a[i];

    sort(a.begin(),a.end());

    // 二分查找最大的值中最小的那个!
    int ans(-1);
    int l = 0, r = n-1;
    while(l < r){
        int mid = l + ((r-l)>>1);
        long long sum(0);
        int tl = max(0,mid-k+1),tr = mid;
        for(int i = tl; i <= tr; i++) sum += a[i];
        if(sum >= s) ans = a[mid],r = mid;
        else l = mid+1;
    }
    cout << ans << endl;
    return 0;
}

全部评论

相关推荐

冲鸭2024:亚信不去也罢
投递亚信科技(中国)有限公司等公司6个岗位
点赞 评论 收藏
分享
友友们,我实在是不太明白,校招的话现在大多也是提前实习,然后转正也是需要考核的,考核通过才能转正,那这跟实习转正有什么区别啊
苦闷的仰泳鲈鱼刷了1...:提前实习,是让你提前熟悉业务的,后续是入职后可以减少试用期的(大部分是包入职的);转正实习,要是hc不够或者其他原因,让你正式offer可能都没有,这个风险很大。 ---个人看法和了解到的。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务