每如一题 6月4日 [CQOI2010]扑克牌 贪心+鸽巢原理

题目链接:https://ac.nowcoder.com/acm/problem/19916
题目大意:
图片说明
图片说明

#include <bits/stdc++.h>
#define LL long long
using namespace std;

LL a[55];
LL n, m;
LL check(LL mid){
    LL ans=0;
    for(int i=1; i<=n; i++){
        if(a[i]<=mid){
            ans+=mid-a[i];
        }
    }
    if(ans>m||ans>mid){
        return 0;
    }
    else{
        return 1;
    }
}

int main(){

    scanf("%lld%lld", &n, &m);
    for(int i=1; i<=n; i++){
        scanf("%d", &a[i]);
    }
    LL L=0, R=1ll<<50, k=0;
    while(L<=R){
        LL mid=L+R>>1;
        if(check(mid)){
            L=mid+1;
            k=mid;
        }
        else{
            R=mid-1;
        }
    }
    printf("%lld\n", k);


    return 0;
}
全部评论

相关推荐

08-20 15:28
宜春学院 Java
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务