暑期集训20190725 加法(add)

【题目描述】 数学课,黑板上写着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;
}
原文地址:https://www.cnblogs.com/miserweyte/p/11259148.html