输入:
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;
}