Codeforces - 1084B. Kvass and the Fair Nut

发布于 2024-07-18 12:45:14 字数 1265 浏览 12 评论 0

题目大意

就是给你 n 桶酒,还有一个杯子容量为 s ,以及 n 桶酒里面的酒的容量,要你用这 n 桶酒要装满这个容量为 s 的杯子,要你使得最后剩余的 n 个桶子中最小容量的桶子剩余的酒最多,求这个数。

解析

贪心,先减去所有不是最小的桶子的那些 "和" ,看是否已经够了,如果不够,就每次将最小值减一,然后判断即可。

#include <bits/stdc++.h>

const int MAX = 1001;
typedef long long ll;

int main(int argc, char const** argv)
{ 
    std::ios::sync_with_stdio(false);
    std::cin.tie(0);
    ll n, s, arr[MAX];
    std::cin >> n >> s;
    ll sum = 0; 
    ll minn = 1000000000;
    for(int i = 0; i < n; i++){ 
        std::cin >> arr[i];
        sum += arr[i];
        if(arr[i] < minn)
            minn = arr[i];
    }
    if(sum < s) 
        std::cout << -1 << std::endl;
    else{
        sum -= minn*n; 
        if(sum >= s)
            std::cout << minn << std::endl;
        else { 
            for(ll surplus = s - sum; surplus > 0; minn--)
                surplus -=  n;
            std::cout << minn << std::endl;
        }
    }
    return 0;
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

深陷

暂无简介

0 文章
0 评论
24 人气
更多

推荐作者

内心激荡

文章 0 评论 0

JSmiles

文章 0 评论 0

左秋

文章 0 评论 0

迪街小绵羊

文章 0 评论 0

瞳孔里扚悲伤

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文