zoukankan      html  css  js  c++  java
  • Codeforece : 1360C. Similar Pairs(水题)

    https://codeforces.com/contest/1360/problem/C

    We call two numbers xx and yy similar if they have the same parity (the same remainder when divided by 22), or if |x−y|=1|x−y|=1. For example, in each of the pairs (2,6)(2,6), (4,3)(4,3), (11,7)(11,7), the numbers are similar to each other, and in the pairs (1,4)(1,4), (3,12)(3,12), they are not.

    You are given an array aa of nn (nn is even) positive integers. Check if there is such a partition of the array into pairs that each element of the array belongs to exactly one pair and the numbers in each pair are similar to each other.

    For example, for the array a=[11,14,16,12]a=[11,14,16,12], there is a partition into pairs (11,12)(11,12) and (14,16)(14,16). The numbers in the first pair are similar because they differ by one, and in the second pair because they are both even.

    Input

    The first line contains a single integer tt (1≤t≤10001≤t≤1000) — the number of test cases. Then tt test cases follow.

    Each test case consists of two lines.

    The first line contains an even positive integer nn (2≤n≤502≤n≤50) — length of array aa.

    The second line contains nn positive integers a1,a2,…,ana1,a2,…,an (1≤ai≤1001≤ai≤100).

    Output

    For each test case print:

    • YES if the such a partition exists,
    • NO otherwise.

    The letters in the words YES and NO can be displayed in any case.

    Example

    input

    7
    4
    11 14 16 12
    2
    1 8
    4
    1 1 1 1
    4
    1 2 5 6
    2
    12 13
    6
    1 6 3 10 5 8
    6
    1 12 3 10 5 8
    

    output

    YES
    NO
    YES
    YES
    YES
    YES
    NO
    

    Note

    The first test case was explained in the statement.

    In the second test case, the two given numbers are not similar.

    In the third test case, any partition is suitable.

    思路:当奇数或偶数的个数为偶数的时候输出yes,否则循环查看是否有一组是相邻的数,若有则yes否则no

    #include<bits/stdc++.h>
    using namespace std;
    int i, k, m, n, t, a[60];
    int main() {
        cin >> t; while (t--) {
            cin >> n;
            for (i = k = m = 0; i < n; ++i) {
                cin >> a[i];
                if (a[i] & 1)++m;
            }
            sort(a, a + n);
            for (int i = 1; i < n; ++i) {
                if (a[i] - a[i - 1] == 1)++k;
            }
            if (m & 1 && !k)cout << "NO" << endl;
            else cout << "YES" << endl;
        }
    }
    
  • 相关阅读:
    ConcurrentHashMap、Collections.synchronizedMap、Hashtable讨论(区别)java集合框架【3】 java1.5新特性
    struts2中方法拦截器(Interceptor)的中的excludeMethods与includeMethods的理解
    java抽象类详解以及与接口区别
    乐观锁理解
    URI和URL的区别
    JavaScript编程笔记
    2007年3月9日早上来到深圳……
    axWindowsMediaPlayer1控件循环播放方法
    C#中调用存储过程笔记(原)
    js日期选择控件(Asp.Net可用)
  • 原文地址:https://www.cnblogs.com/RioTian/p/13205294.html
Copyright © 2011-2022 走看看