给定一个长度为 nn 的整数序列 a1,a2,…,an
请你找到一个该序列的子序列,要求:
- 该子序列的所有元素之和必须是奇数。
- 在满足条件 1 的前提下,该子序列的所有元素之和应尽可能大。
输出你找到的满足条件的子序列的所有元素之和。
保证至少存在一个满足条件的子序列。
注意,子序列不一定连续。
输入格式
第一行包含一个整数 n。
第二行包含 n 个整数 a1,a2,…,an。
输出格式
输出一个整数,表示满足条件的子序列的所有元素之和。
数据范围
前 6 个测试点满足 1≤n≤5。
所有测试点满足 1≤n≤10的5次方,−10的4次方≤ai≤10的4次方。
输入样例1:
4
-2 2 -3 1
输出样例1:
3
输入样例2:
3
2 -5 -3
输出样例2:
-1
我们可以先想一下解题的思路
最大值有三种情况:
1、所有正数加起来是奇数
2、所有正数加起来是偶数,那么就比较减去最小奇正数和加上最大奇负数哪个大
3、如果没有正数那么答案就是最大奇负数
其中第一种情况和第三种情况是很好解决的,难就难在第二种情况,我昨天编写了两个多小时,思路早就想好了,只差一步了,然后又遇到了在AcWing上面的输出结果和我在C++编译器上面的输出结果不一样(