挑战赛#22 T3
2025-09-08 19:36:46
发布于:北京
1阅读
0回复
0点赞
思路:先把偶数选上,然后如果奇数的个数是偶数的话(总和也是偶数),奇数也全部选上,否则去掉最小的奇数。
但是我这里为了简便直接从总和里减。
注意会让你见祖宗的东西。
#include <bits/stdc++.h>
using namespace std;
#define int long long
int n,ji,mn=1e6+10,sm;//ji表示奇数的个数,mn表示最小的奇数,sm表示所有数的和
int a[1000005];
signed main(){
cin>>n;
for (int i=1;i<=n;i++){
cin>>a[i];
if (a[i]%2){
ji++;
mn=min(a[i],mn);
}
sm+=a[i];
}
if (ji%2==0){
cout<<sm;//全选
}
else {
cout<<sm-mn;//去掉最小的奇数
}
}
这里空空如也
有帮助,赞一个