Решение задачи Выбор нечетных с Codeforces

С пояснением   Просмотров: 47


У Shubham есть массив a размера n, и он хочет выбрать из него ровно x элементов так, чтобы их сумма была нечетной. Эти элементы не обязаны быть последовательными. Элементы массива не обязательно различны.

Скажите ему, может ли он сделать это.

Код

#include <bits/stdc++.h>

using namespace std;

void solve()
{
    int n, x, ch = 0, nech = 0, t;
    cin >> n >> x;
    for(int i = 0; i < n; ++i){
        cin >> t;
        if(t % 2)
            ++nech;
        else
            ++ch;
    }
    if((x == n && nech % 2 == 0) || nech == 0 || (nech == n && x % 2 == 0))
		cout << "No";
	else
		cout << "Yes";
	cout << '\n';
}
int main()
{
    int t;
    cin >> t;
    while(t--){
        solve();
    }
    return 0;
}

         

Администратор Photo Автор: Администратор


Есть 3 момента, когда нужно выводить "NO"
1. Когда нечётных чисел нет. Т.е в массиве все элементы чётные.
2. Когда количество выбираемых нами элементов равна n и количество нечетных элементов в составе чётно(nech % 2 == 0)
3. Когда все числа в массиве нечётные и количество выбираемых нами элементов чётно (x % 2 == 0).


Комментарии

Чтобы написать комментарии вам нужно войти в систему или зарегистрироваться