B. Odd sum:题目
一道小小的贪心
#include <bits/stdc++.h>
using namespace std;
#define int long long
vector<int> a((int)6e5);
vector<int> b((int)6e5), c[(int)6e5];
const int mod = 1e9 + 7;
string s;
multiset<int> se;
signed main()
{int n;cin >> n;int res = -0x3f3f3f3f;for (int i = 0; i < n; i++){cin>>a[i];if (a[i]&1) res = max(res,a[i]);}sort(a.begin(),a.begin()+n);int sum = 0,cou = 0x3f3f3f3f;for (int i=n-1;i>=0;i--){if (a[i]>0) sum+=a[i];if (a[i]&1){if (abs(a[i])<abs(cou)) cou = abs(a[i]);}}if (sum&1) res = sum;else res = max(res,sum-cou);cout<<res<<endl;
}