题解 | 灵异背包?

灵异背包?

https://www.nowcoder.com/practice/812bcedbbe244c9b86e459a244af5ddf

#include <iostream>
#include <numeric>
#include<vector>
#include<algorithm>
using namespace std;

int main() {
   int n;
   cin>>n;
   long long sum=0;
   vector<int> odd;
   odd.reserve(n);
   while(n--){
      int num;
      cin>>num;
      if(num%2==0){
        sum+=num;
      }else{
         odd.push_back(num);
      }
   }
   sort(odd.begin(),odd.end());
   if(odd.size()%2==0){
       long long total=accumulate(odd.begin(),odd.end(),0);
       sum+=total;
   }else{
       long long total=accumulate(odd.begin()+1,odd.end(),0);
       sum+=total;
   }
   cout<<sum<<endl;
   return 0;
}

全部评论

相关推荐

King987:待优化的地方还是挺多的,可以参考一下我的作品优化一下,优化不好的话也可以找我
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务