A. Wet Shark and Odd and Even
time limit per test2 seconds
memory limit per test256 megabytes
inputstandard input
outputstandard output
Today, Wet Shark is given n integers. Using any of these integers no more than once, Wet Shark wants to get maximum possible even (divisible by 2) sum. Please, calculate this value for Wet Shark.
Note, that if Wet Shark uses no integers from the n integers, the sum is an even integer 0.
Input
The first line of the input contains one integer, n (1 ≤ n ≤ 100 000). The next line contains n space separated integers given to Wet Shark. Each of these integers is in range from 1 to 109, inclusive.
Output
Print the maximum possible even sum that can be obtained if we use some of the given integers.
Examples
Input
Copy
3
1 2 3
Output
Copy
6
Input
Copy
5
999999999 999999999 999999999 999999999 999999999
Output
Copy
3999999996
Note
In the first sample, we can simply take all three integers for a total sum of 6.
In the second sample Wet Shark should take any four out of five integers 999 999 999.
题解:偶数+偶数=偶数,所以偶数都直接加起来。奇数+奇数=偶数,计算奇数个数,若个数为偶数则把所有奇数相加起来;若个数为奇数,将奇数列从大到小排序,舍弃做小一个,其他相加。把奇数和与偶数和相加就是答案。
#include<iostream>
#include<algorithm>
bool cop(int a,int b)
{
return a>b;
}
using namespace std;
int main()
{
long long sum=0,b;
int i,j,k=0,n;
int a[100001];
cin>>n;
for(i=1;i<=n;i++)
{
cin>>b;
if(b%2==0)
{
sum+=b;
}
else
{
a[k]=b;
k++;
}
}
if(k%2==0)
{
for(i=0;i<k;i++)
{
sum+=a[i];
}
cout<<sum<<'\n';
return 0;
}
sort(a,a+k,cop);
for(i=0;i<k-1;i++)
{
sum+=a[i];
}
cout<<sum<<'\n';
return 0;
}