给定n个数,请从中选出若干个数,使得总和为偶数,请最大化这个总和。
标签:
4291: [PA2015]Kieszonkowe
Time Limit: 1 Sec
Memory Limit: 256 MB
Sample Output
12
题意
题解:
无解情况只有一种,那么n=1,a[1]%2==1
有解的话,全部加起来,如果是偶数的话就直接输出
否则就删去一个最小的奇数就好了
代码:
#include<stdio.h> #include<algorithm> using namespace std; int a[1000005]; int main() { int n; scanf("%d",&n); for(int i=1;i<=n;i++) scanf("%d",&a[i]); if(n==1) { if(a[1]%2==1) printf("NIESTETY\n"); else printf("%d\n",a[1]); } else { sort(a+1,a+n+1); long long sum = 0; for(int i=1;i<=n;i++) sum = sum + a[i]; if(sum % 2 == 0) { printf("%lld\n",sum); return 0; } for(int i=1;i<=n;i++) { if(a[i]%2==1) { printf("%lld\n",sum-a[i]); return 0; } } } }
BZOJ 4291: [PA2015]Kieszonkowe 水题
标签:
原文地址:http://www.cnblogs.com/qscqesze/p/4859918.html