判断上下奇偶性并判断有没有上下奇偶性不一致的牌即可
分4种情况讨论
- 奇偶性不同怎么变都不行,输出-1
- 都是偶数直接输出0
- 都是奇数需要找到上下奇偶性不同的牌,输出1,否则不可能,输出-1
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n, c = 0, d = 0;
bool flag = false;
scanf("%d", &n);
for (int i = 1; i <= n; ++i)
{
int a, b;
scanf("%d%d", &a, &b);
if ((a & 1) ^ (b & 1)) flag = true;
c ^= a & 1;
d ^= b & 1;
}
if (c ^ d)
puts("-1");
else if (c)
{
if (flag)
puts("1");
else
puts("-1");
}
else
puts("0");
return 0;
}