2022.5.9 AcWing每日一题
题目链接 https://www.acwing.com/problem/content/3362/
难度:签到
小思维 + 边界处理
#include <bits/stdc++.h>
using namespace std;
int st[5];
int n;
int main() {
scanf("%d", &n);
for (int i = 1; i <= n; i++) {
int tmp;
scanf("%d", &tmp);
st[tmp % 2]++;
}
int minn = min(st[0], st[1]);
int ans = 2 * minn;
if (st[1] > st[0]) {
int d = st[1] - st[0];
ans += (d / 3) * 2;
d %= 3;
if (d == 2) {
ans ++;
} else if (d == 1) {
ans --;
}
} else {
ans++;
}
printf("%d\n", ans);
return 0;
}