您好,欢迎来到飒榕旅游知识分享网。
搜索
您的当前位置:首页码蹄集 召唤神龙

码蹄集 召唤神龙

来源:飒榕旅游知识分享网

 输入:

4 5
2 3 4 5

输出:

4

#include<bits/stdc++.h>

using namespace std;

int main( )
{
    //获取输入
    int n,m;
    cin>>n>>m;
    int c[50];
    for(int i = 0 ; i < n ; i++){
        cin>>c[i];
    }
    
    sort(c,c+n);
    int res = 0,flag = 1;
    while(m&&flag){
        //先用r卡替换当前数量最少的卡牌,一次只能替换一张
        m--;// 消耗一张r卡
        for(int i = 1 ; i < n ; i++){
            if(c[i]>=1){
                c[i]--; //消耗其他卡牌
                if(c[i]<c[i+1]){ //(*)
                    swap(c[i],c[i+1]);
                }
            } 
            else { //说明已经不够凑出一套卡牌
                flag = 0;
                break;
            }
        }
        if(flag)res++;
        //sort(c,c+n); 在此排序超时了,故改成(*)的排序
    }
    if(flag){
        res+=c[0];
    }
    cout<<res<<endl;
    return 0;
}

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- sarr.cn 版权所有 赣ICP备2024042794号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务