题目大意:已知n个点的蘑菇数量,采到的蘑菇只能是偶数,你可以将某个点的蘑菇数量加1,请问最多采多少蘑菇?

显然,偶数的全部都可以采;对于奇数的,至多使用1次魔法增加1后进行采摘,贪心选择最大的奇数。如果没有奇数,魔法就不用了,用了会导致偶数少采一个。

#include <bits/stdc++.h>
using namespace std;
int n, m, i, j, k, s;
int main(){
    scanf("%d", &n);
    for(i=1; i<=n; i++){
        scanf("%d", &k);
        if(k&1) m = max(m, k);
        else s += k;
    }
    if(m) s += m+1;
    printf("%d\n", s);
    return 0;
}