BZOJ_P4291 [PA2015]Kieszonkowe(贪心)

来源:互联网 发布:h3c配置vlan多个端口 编辑:程序博客网 时间:2024/06/05 03:33

BZOJ传送门

Time Limit: 10 Sec Memory Limit: 256 MB
Submit: 534 Solved: 341
[Submit][Status][Discuss]
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

Source
By Claris

Sol:
吃枣药丸,0不是偶数?!(除非它就一个数)

#include<cstdio>#include<climits>inline int in(int x=0,char ch=getchar()){while(ch>'9'||ch<'0') ch=getchar();    while(ch>='0'&&ch<='9') x=(x<<3)+(x<<1)+ch-'0',ch=getchar();return x;}long long ans;int x,n,t=INT_MAX;int main(){    n=in();while(n--){x=in(),ans+=x;if(x&1)if(t>x) t=x;}    if(ans&1) ans-=t;if(ans) printf("%lld\n",ans);    else puts("NIESTETY");return 0;}
0 1
原创粉丝点击