cf-A. Wet Shark and Odd and Even(水)
2016-02-01 08:36
393 查看
A. Wet Shark and Odd and Even
time limit per test
2 seconds
memory limit per test
256 megabytes
input
standard input
output
standard 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.
Sample test(s)
input
output
input
output
time limit per test
2 seconds
memory limit per test
256 megabytes
input
standard input
output
standard 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.
Sample test(s)
input
3 1 2 3
output
6
input
5 999999999 999999999 999999999 999999999 999999999
output
3999999996 题解:第一次打cf,写了两道水题,剩下的就完全没思路啊。。。 这个题让找给的数中可以加到的最大可以被2整除的数;水; 代码:
#include<cstdio> #include<cstring> #include<cmath> #include<algorithm> using namespace std; const int INF=0x3f3f3f3f; #define mem(x,y) memset(x,y,sizeof(x)) #define SI(x) scanf("%d",&x) #define SL(x) scanf("%I64d",&x) #define PI(x) printf("%d",x) #define PL(x) printf("%I64d",x) #define P_ printf(" ") const int MAXN=1e5+100; int m[MAXN]; int main(){ int n; while(~SI(n)){ __int64 ans=0,temp,top=0; for(int i=0;i<n;i++){ SL(temp); if(temp&1)m[++top]=temp; else ans+=temp; } sort(m+1,m+top+1); int t=1; if(top&1)t++; for(int i=t;i<=top;i++)ans+=m[i]; printf("%I64d\n",ans); } return 0; }
相关文章推荐
- android 描边
- android-修改TextView中部分文字的颜色
- buildroot linux filesystem 初探
- laravel之模板使用
- ElasticSearch学习
- list<T>作为datagridview的datasource
- J2EE的13个规范之(二) JDBC 及其使用
- Web之旅第四站——CSS(Cascading style Sheet) 层叠样式表
- 指示符“include”、“-include”和“sinclude”
- 解决ubuntu上VMware:(vmware-installer.py:3847): Gtk-WARNING **: 无法在模块路径中找到主题引擎:“murrine”,
- Leetcode 58 - Length of Last Word
- 数据结构《17》---- 自己主动补齐之《二》----Ternary Search Tree
- Android学习——百度地图开发定位与显示Demo
- 算法笔记之高速排序
- intent机制详解
- 将其它图片格式转为.eps格式
- 分布式系统概念小记
- SQLite数据库的分页查询
- C# BitmapImage对象和byte[]之间的互转、BitmapImage和Bitmap互换
- Lintcode: Segment Tree Modify