GitBook

这里写图片描述

求使数组数字之和为奇数的最大值

只需要看最终的和是否为奇数 如果是奇数减去最小的一个奇数即可

否则直接输出

#include<stdio.h>
int a[100200];
int main() {
	int n;
	while(scanf("%d",&n)!=EOF) {
		for(int i=0; i<n; i++)
			scanf("%d",&a[i]);
		__int64 sum=0,min=9999999999;
		for(int i=0; i<n; i++) {
			if(a[i]&1&&a[i]<min)
				min=a[i];
			sum+=(__int64)a[i];
		}
		printf("%I64d\n",sum&1?sum-min:sum);
	}
	return 0;
}

题目地址:【CodeForces】[621A]Wet Shark and Odd and Even