CodeFoeces-557A

题目

原题链接:A. Ilya and Diplomas

题意

一,二,三等奖分别需要在最少数和最多数之间。且总和满足等于n,同时一等奖尽可能多,在此基础上二等奖尽可能多,在此基础上三等奖尽可能多。问满足条件的三个奖项的人数。

代码

    #include<bits/stdc++.h>
    using namespace std;
    int main() {
        int n,max1,min1,max2,min2,max3,min3;
        cin>>n>>min1>>max1>>min2>>max2>>min3>>max3;
        if(min1+min2+min3==n){
            printf("%d %d %d\n",min1,min2,min3);
            return 0;
        }
        if(max1+max2+max3==n){
            printf("%d %d %d\n",max1,max2,max3);
            return 0;
        }
        int f=min1,s=min2,t=min3,sum=f+s+t;
        if(sum<n){
            if(sum+(max1-min1)<=n) {f+=max1-min1;sum+=max1-min1;}
            else {f+=n-sum;goto end;}
            if(sum+(max2-min2)<=n) {s+=max2-min2;sum+=max2-min2;}
            else {s+=n-sum;goto end;}
            if(sum+(max3-min3)<=n) {t+=max3-min3;sum+=max3-min3;}
            else {t+=n-sum;goto end;}
        }
        end:printf("%d %d %d\n",f,s,t);
        return 0;
    }
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容