Description
给定n个数,请从中选出若干个数,使得总和为偶数,请最大化这个总和。
Input
第一行包含一个正整数n(1<=n<=1000000)。
第二行包含n个正整数a_1,a_2,...,a_n(1<=a_i<=1000)。
Output
输出一个正整数,即最大的总和,若无解则输出NIESTETY。
Sample Input
5
2 4 3 3 3
2 4 3 3 3
Sample Output
12
解题:唔,总和减去最小的奇数
1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 using namespace std; 5 int main() 6 { 7 int n; 8 scanf("%d",&n); 9 long long x,ans=0,min_odd = 20000; 10 for(int i=1;i<=n;i++) 11 { 12 scanf("%lld",&x); 13 ans+=x; 14 if(x&1) 15 { 16 min_odd = min(min_odd, x); 17 } 18 } 19 if(ans&1)ans-=min_odd; 20 if(ans==0)puts("NIESTETY");else printf("%lld ",ans); 21 return 0; 22 }