官方题解
2025-09-08 11:24:39
发布于:浙江
8阅读
0回复
0点赞
题目大意
有 个数字,从中选出一些数,使得选出的数之和为偶数且最大,求这些数字之和。
解题思路
考虑要选出和最大的数,因为没有负数,所以我们可以直接把所有数都选了,如果和为偶数,那这就是最大的数字和了;否则说明其中至少有一个奇数,把最小奇数剔除就可以得到最大的数字和。
参考代码
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define endl '\n'
const int INF = 1e18+10;
signed main(){
int n;cin>>n;
vector<int>a(n+1);
int res=0;
int mi=INF;
for(int i=0;i<n;i++){
cin>>a[i];
res+=a[i];
if(a[i]&1) mi=min(mi,a[i]);
}
if(res&1) res-=mi;
cout<<res<<endl;
}
这里空空如也
有帮助,赞一个