4291: [PA2015]Kieszonkowe

Time Limit: 1 Sec

Memory Limit: 256 MB

题目连接

http://www.lydsy.com/JudgeOnline/problem.php?id=4291

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

Sample Output

12

HINT

题意

题解:

无解情况只有一种,那么n=1,a[1]%2==1

有解的话,全部加起来,如果是偶数的话就直接输出

否则就删去一个最小的奇数就好了

代码:

#include<stdio.h>
#include<algorithm>
using namespace std;
int a[];
int main()
{
int n;
scanf("%d",&n);
for(int i=;i<=n;i++)
scanf("%d",&a[i]);
if(n==)
{
if(a[]%==)
printf("NIESTETY\n");
else
printf("%d\n",a[]);
}
else
{
sort(a+,a+n+);
long long sum = ;
for(int i=;i<=n;i++)
sum = sum + a[i];
if(sum % == )
{
printf("%lld\n",sum);
return ;
}
for(int i=;i<=n;i++)
{
if(a[i]%==)
{
printf("%lld\n",sum-a[i]);
return ;
}
}
}
}
04-17 01:39