Educational Codeforces Round 19 B. Odd sum
来源:互联网 发布:上古卷轴5御姐捏脸数据 编辑:程序博客网 时间:2024/06/06 20:39
想了想是可以贪心过的,先遍历一遍,记录大于等于0的数的偶数个数和奇数个数,然后进行从大到小排序,如果所有值都小于零,那么遍历一下输出第一个奇数;如果奇数个数是奇数,直接把大于零的数全部加起来即可;如果奇数个数是零,那么先把所有正数加起来,在加上负数里的第一个奇数;剩下的情况就是正数的奇数个数为偶数(非零),这种情况可以先把所有正数加起来,然后比较负数里的第一个奇数和正数里的最后一个奇数的绝对值大小即可。
#include<bits/stdc++.h>using namespace std;int n,a[100005],ji=0,ou=0,res=0;int main(){ cin>>n; for(int i=0;i<n;i++) { scanf("%d",&a[i]); if(a[i]>=0&&a[i]&1)ji++; else if(a[i]>=0&&a[i]%2==0)ou++; } sort(a,a+n,greater <int>() ); if(ji+ou==0) { for(int i=0;i<n;i++) { if(a[i]%2) { cout<<a[i]; return 0; } } } if(ji&1) { for(int i=0;i<n;i++) { if(a[i]>=0)res+=a[i]; else break; } cout<<res; } else if(ji==0) { int i=0; for(i=0;i<n;i++) { if(a[i]>=0)res+=a[i]; else break; } for(;i<n;i++) { if(a[i]&1) { res+=a[i]; break; } } cout<<res; } else { int num=0,ma,fma=-1e9; for(int i=0;i<n;i++) { if(a[i]>=0)res+=a[i]; else break; } for(int i=0;i<n;i++) { if(a[i]>=0&&num<ji-1)num++; else if(a[i]>=0&&(a[i]&1)&&num==ji-1)ma=a[i]; else if(a[i]<0&&(a[i]&1)) { fma=a[i]; break; } } cout<<max(res-ma,res+fma); } return 0;}
1 0
- Educational Codeforces Round 19 B. Odd sum
- Educational Codeforces Round 19 B. Odd sum
- Educational Codeforces Round 16 Magic Odd Square
- CodeForces 797B Odd sum
- codeforces 797B Odd sum
- Codeforces 797B Odd sum
- Educational Codeforces Round 5 B
- Educational Codeforces Round 3 B
- Educational Codeforces Round 20 B
- Educational Codeforces Round 23 B
- Educational Codeforces Round 26 B
- 【Educational Codeforces Round 16】Codeforces 710C Magic Odd Square
- Educational Codeforces Round 16 C. Magic Odd Square
- Educational Codeforces Round 16 C. Magic Odd Square (构造)
- Educational Codeforces Round 16 C. Magic Odd Square
- Educational Codeforces Round 16 C. Magic Odd Square
- Educational Codeforces Round 16 C 题 Magic Odd Square
- Educational Codeforces Round 16 C. Magic Odd Square
- leetcode64. Minimum Path Sum
- Entity层
- 安装mysql后重新设置密码
- 等差素数列
- leetcode#437 Path Sum III
- Educational Codeforces Round 19 B. Odd sum
- unity3d用欧拉角(eulerAngles)给刚体直接加速度(velocity )的算法举例
- javascript---生成器(generator)
- KMP算法
- 设计模式-访问者模式
- python调用matlab环境配置,非常详细!!!
- java 类加载-初始化顺序
- ZOJ2388 Beat the Spread!
- Maven scope介绍