【题目描述】 数学课,黑板上写着n个数字,记为A1到An,fateice会重复以下操作若干次:
1. 选择两个奇偶性相同的整数Ai和Aj, 将他们擦去
2. 将Ai+Aj写在黑板上 问黑板上最终是否有可能只剩一个数
【输入数据】 输入的第一行一个n 第二行 n个整数,表示A1...An
【输出数据】 如果可能只剩一个数,输出YES,否则输出NO
【样例输入1】 3 1 2 3
【样例输出1】 YES
【样例输入2】 5 1 2 3 4 5
【样例输出2】 NO
【数据范围】 对于10% 的数据, n = 2 对于100%的数据2 <= n <= 10^5, 1 <= Ai <= 10^9
由于每次去除两个奇偶性相同的数并相加合并,则得到的必为偶数。
想要最后得到一个数,则n个数字必须能够全部转换为偶数。
因此判断奇数个数是否为偶数即可。
#include <bits/stdc++.h> using namespace std; int main(){ freopen("add.in", "r", stdin); freopen("add.out", "w", stdout); int n; int ocnt=0; scanf("%d", &n); int temp; for(int i=0; i<n; i++){ scanf("%d", &temp); if(temp%2 == 1) ocnt++; } if(ocnt%2 == 1){ printf("NO"); return 0; } else printf("YES"); return 0; }