day2:牛客网 糖果俱乐部

链接:登录—专业IT笔试面试备考平台_牛客网
来源:牛客网
 

中国地质大学(武汉)坐落于南望山下毗邻东湖风景区。为了庆祝“华为杯”中国地质大学(武汉)第十七届ICPC程序设计大赛暨华中地区部分高校第十五届ICPC邀请赛竞赛的举办,校园中开展了许多有趣的热身小活动。 HW\ HW HW听到这个消息非常激动,他赶忙去参加了糖果俱乐部的活动。该活动的规则是这样的:摊位上有 n\ n n堆糖果,第 i\ i i堆糖果有aia_iai​个,参与的同学可以选择其中的任意堆,当所选择糖果的总数为偶数就可以把它们都带走啦~试问通过这个活动小 HW\ HW HW最多能在摊位上带走多少枚糖果。

输入描述:

 

第1行 输入一个整数 n(n≤100),代表共有 n堆糖果。 

第2行 依次输入 n个整数ai​ ( ai≤100000),代表每堆糖果的数量。

输出描述:

输出一个整数,代表小HW最多能取得的糖果。

示例1

输入

复制4   1 2 3 4

4
1 2 3 4

输出

复制10

解析:理解题意:

1.有n堆糖果,也就是我们首先要输入n堆,cin>>n;

2.每堆有ai个糖果,所以我们用数组储存这些糖果的数目。

3.因为随便取,就先将糖果总数取和,sum+=a[i];

最后根据输入案例判断如果n堆糖果里糖果数目为奇数的堆有偶数个(用ans来计数),则最终结果为sum(比如案例1中1.2.3.4,(1.3)为奇数个,总共有两个堆,为偶数,最终结果就是sum。)如果最终有奇数个堆,还要取最大的糖果数,则总数sum要减去最少的为奇数的糖果数(比如1.2.3.4.5,sum=15,最后要减去1等于14,这就是最大的糖果数。)

代码如下

#include<iostream>
using namespace std;
int n,a[1000001],sum=0,minn=100010,ans=0;
int main(){
cin>>n;
for(int i=1;i<=n;i++){
    cin>>a[i];
    sum+=a[i];
    if(a[i]%2!=0){
        ans++;
        minn=min(a[i],minn);
    }
if(ans%2==0){
    cout<<sum<<endl;}
    else cout<<sum-minn<<endl;
return 0;

}

示例2

输入

复制8 10 11 10 10 10 10 10 10

8
10 11 10 10 10 10 10 10

输出

复制70


                
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值