列表

详情


NC207595. 糖果俱乐部

描述

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

输入描述

第1行 输入一个整数,代表共有堆糖果。 
第2行 依次输入个整数a_i ,代表每堆糖果的数量。

输出描述

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

示例1

输入:

4
1 2 3 4

输出:

10

示例2

输入:

8
10 11 10 10 10 10 10 10

输出:

70

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

C 解法, 执行用时: 2ms, 内存消耗: 364K, 提交时间: 2022-11-12 14:03:47

#include <stdio.h>
int main(){
    int n,a,s=0,min=100000;
    scanf("%d",&n);
    while(n--){
    	scanf("%d",&a);
    	s+=a;
    	if(a%2&&min>a)min=a;
	}
	if(s%2)s-=min;
	printf("%d",s);
}

C++ 解法, 执行用时: 3ms, 内存消耗: 424K, 提交时间: 2021-09-30 22:03:55

#include<stdio.h>
int main()
{
	int n,x,m=100000,s=0;
	scanf("%d",&n);
	while(n--)
{
	scanf("%d",&x);
	s+=x;
	if(x%2)
	if(x<m)
	m=x;
}
if(s%2)
s-=m;
printf("%d",s);
}

Python3 解法, 执行用时: 41ms, 内存消耗: 4560K, 提交时间: 2023-07-22 09:04:50

n=int(input())
l=list(map(int,input().split()))
s=sum(l)
if s&1:
    l.sort()
    for i in l:
        if i&1:
            s-=i
            break
print(s)

上一题