更奇怪的照片

【题目描述】

Farmer John 正再一次尝试给他的 N 头奶牛拍照(2N1000)。

每头奶牛有一个范围在 1100 之内的整数的「品种编号」。Farmer John 对他的照片有一个十分古怪的构思:他希望将所有的奶牛分为不相交的若干组(换句话说,将每头奶牛分到恰好一组中)并将这些组排成一行,使得第一组的奶牛的品种编号之和为偶数,第二组的编号之和为奇数,以此类推,奇偶交替。

Farmer John 可以分成的最大组数是多少?

【输入格式】

输入的第一行包含 N。下一行包含 N 个空格分隔的整数,为 N 头奶牛的品种编号。

【输出格式】

输出 Farmer John 的照片中的最大组数。可以证明,至少存在一种符合要求的分组方案。

【输入输出样例#1】

输入#1输出#1
7
1 3 5 7 9 11 13
3

【输入输出样例#2】

输入#2输出#2
7
8 2 16 12 1 15 4
5

【输入输出样例#3】

输入#3输出#3
6
1 2 3 4 5 6
6

【说明提示】

样例1解释,以下是一种分成最大组数三组的方案。将 1 和 3 分在第一组,5、7 和 9 分在第二组,11 和 13 分在第三组。

【代码样例】

#include <bits/stdc++.h>
using namespace std;

int main() {
	int odd = 0, even = 0; //奇数、偶数
	int n;
	cin >> n;
	for (int i = 1; i <= n; i++) {
		int x;
		cin >> x;
		if (x % 2 == 0) {
			even++;
		} else {
			odd++;
		}
	}
	if (odd < even) {
		cout << 2 * odd + 1 << endl;
	} else if (odd >= even) {
		if ((odd - even) % 3 == 0) {
			cout << 2 * (even + (odd - even) / 3) << endl;
		} else if ((odd - even) % 3 == 1) {
			cout << 2 * (even + (odd - even) / 3) - 1 << endl;
		} else if ((odd - even) % 3 == 2) {
			cout << 2 * (even + (odd - even) / 3) + 1 << endl;
		}
	}
}