class Solution {
public:
int maxmiumScore(vector<int>& cards, int cnt) {
sort(cards.begin(), cards.end(), greater<int>());
int sum = 0;
for(int i = 0; i < cnt; i++){
sum += cards[i];
}
if(sum % 2 == 0)
return sum;
else{
if(cnt == cards.size()){
return 0;
}
//去掉最小的偶数 加上最大的奇数
int temp1 = sum;
int flag = 0;
for(int i = cnt - 1; i >= 0; i--){
if(cards[i] % 2 == 0){
temp1 -= cards[i];
flag = 1;
break;
}
}
if(flag != 0){
for(int i = cnt; i < cards.size(); i++){
if(cards[i] % 2 == 1){
temp1 += cards[i];
flag = 1;
break;
}
}
if(flag == 0)
temp1 = 0;
}
else
temp1 = 0;
flag = 0;
//去掉最小的奇数 加上最大的偶数
int temp2 = sum;
flag = 0;
for(int i = cnt - 1; i >= 0; i--){
if(cards[i] % 2 == 1){
temp2 -= cards[i];
flag = 1;
break;
}
}
if(flag != 0){
for(int i = cnt; i < cards.size(); i++){
if(cards[i] % 2 == 0){
temp2 += cards[i];
flag = 1;
break;
}
}
if(flag == 0)
temp2 = 0;
}
else
temp2 = 0;
sum = max(temp1, temp2);
return sum;
}
}
};
07-22
2383
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
07-24
2437
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
10-18