# Find if it is possible to choose subarray that it contains exactly K even integers

• Last Updated : 24 Nov, 2021

Given 2 positive integers N and K and an array arr[], the task is to find whether it is possible to choose a non-empty subarray of the array such that the subarray contains exactly K even integers.
Examples:

Input: N = 4, K = 2, arr[] = {1, 2, 4, 5}
Output: Yes
Explanation:
We can select the subarray {2, 4} which contains exactly K = 2 even numbers.
Input: N = 3, K = 3, arr[] = {2, 4, 5}
Output: No
Explanation:
There are only two even numbers. Therefore, we cannot choose a subarray with K = 3 even numbers.

Attention reader! All those who say programming isn't for kids, just haven't met the right mentors yet. Join the  Demo Class for First Step to Coding Coursespecifically designed for students of class 8 to 12.

The students will get to learn more about the world of programming in these free classes which will definitely help them in making a wise career choice in the future.

Approach: The idea is to count the number of even numbers in the array. Now there can be 3 cases:

• If the count of even numbers in the array is 0 (i.e.) there are only odd numbers in the array, then we can’t select any subarray
• If the count of even numbers in the array is ≥ K, then we can easily select a subarray with exactly K even integers
• Else it is not possible to select a subarray with exactly K even integers

Below is the implementation of the above approach:

## CPP

 `// C++ program to check if it is possible to``// choose a subarray that contains exactly``// K even integers``#include ``using` `namespace` `std;` `// Function to check if it is possible to``// choose a subarray that contains exactly``// K even integers``void` `isPossible(``int` `A[], ``int` `n, ``int` `k)``{``    ``// Variable to store the count of``    ``// even numbers``    ``int` `countOfTwo = 0;``    ``for` `(``int` `i = 0; i < n; i++) {``        ``if` `(A[i] % 2 == 0) {``            ``countOfTwo++;``        ``}``    ``}` `    ``// If we have to select 0 even numbers``    ``// but there is all odd numbers in the array``    ``if` `(k == 0 && countOfTwo == n)``        ``cout << ``"NO\n"``;` `    ``// If the count of even numbers is greater than``    ``// or equal to K then we can select a``    ``// subarray with exactly K even integers``    ``else` `if` `(countOfTwo >= k) {``        ``cout << ``"Yes\n"``;``    ``}` `    ``// If the count of even numbers is less than K``    ``// then we cannot select any subarray with``    ``// exactly K even integers``    ``else``        ``cout << ``"No\n"``;``}` `// Driver code``int` `main()``{``    ``int` `arr[] = { 1, 2, 4, 5 };``    ``int` `K = 2;``    ``int` `N = ``sizeof``(arr) / ``sizeof``(arr);` `    ``isPossible(arr, N, K);``    ``return` `0;``}`

## Java

 `// Java program to check if it is possible to``// choose a subarray that contains exactly``// K even integers``import` `java.util.*;`` ` `class` `GFG{``// Function to check if it is possible to``// choose a subarray that contains exactly``// K even integers``static` `void` `isPossible(``int` `[]A, ``int` `n, ``int` `k)``{``    ``// Variable to store the count of``    ``// even numbers``    ``int` `countOfTwo = ``0``;``    ``for` `(``int` `i = ``0``; i < n; i++) {``        ``if` `(A[i] % ``2` `== ``0``) {``            ``countOfTwo++;``        ``}``    ``}` `    ``// If we have to select 0 even numbers``    ``// but there is all odd numbers in the array``    ``if` `(k == ``0` `&& countOfTwo == n)``        ``System.out.print(``"NO"``);` `    ``// If the count of even numbers is greater than``    ``// or equal to K then we can select a``    ``// subarray with exactly K even integers``    ``else` `if` `(countOfTwo >= k) {``        ``System.out.print(``"YES"``);``    ``}` `    ``// If the count of even numbers is less than K``    ``// then we cannot select any subarray with``    ``// exactly K even integers``    ``else``        ``System.out.print(``"No"``);``}` `// Driver Code``public` `static` `void` `main(String[] args)``{``    ``int` `[]arr = { ``1``, ``2``, ``4``, ``5` `};``    ``int` `K = ``2``;``    ``int` `n = arr.length;` `    ``isPossible(arr, n, K);``}``}` `// This code is contributed by shivanisinghss2110`

## Python3

 `# Python3 program to check if it is possible to``# choose a subarray that contains exactly``# K even integers` `# Function to check if it is possible to``# choose a subarray that contains exactly``# K even integers``def` `isPossible(A, n, k):``    ` `    ``# Variable to store the count of``    ``# even numbers``    ``countOfTwo ``=` `0``    ``for` `i ``in` `range``(n):``        ``if` `(A[i] ``%` `2` `=``=` `0``):``            ``countOfTwo ``+``=` `1` `    ``# If we have to select 0 even numbers``    ``# but there is all odd numbers in the array``    ``if` `(k ``=``=` `0` `and` `countOfTwo ``=``=` `n):``        ``print``(``"NO\n"``)` `    ``# If the count of even numbers is greater than``    ``# or equal to K then we can select a``    ``# subarray with exactly K even integers``    ``elif` `(countOfTwo >``=` `k):``        ``print``(``"Yes\n"``)` `    ``# If the count of even numbers is less than K``    ``# then we cannot select any subarray with``    ``# exactly K even integers``    ``else``:``        ``print``(``"No\n"``)` `# Driver code``if` `__name__ ``=``=` `'__main__'``:``    ``arr``=``[``1``, ``2``, ``4``, ``5``]``    ``K ``=` `2``    ``N ``=` `len``(arr)` `    ``isPossible(arr, N, K)` `# This code is contributed by mohit kumar 29`

## C#

 `// C# program to check if it is possible to``// choose a subarray that contains exactly``// K even integers``using` `System;` `class` `GFG{` `// Function to check if it is possible to``// choose a subarray that contains exactly``// K even integers``static` `void` `isPossible(``int` `[]A, ``int` `n, ``int` `k)``{``    ``// Variable to store the count of``    ``// even numbers``    ``int` `countOfTwo = 0;``    ``for` `(``int` `i = 0; i < n; i++) {``        ``if` `(A[i] % 2 == 0) {``            ``countOfTwo++;``        ``}``    ``}` `    ``// If we have to select 0 even numbers``    ``// but there is all odd numbers in the array``    ``if` `(k == 0 && countOfTwo == n)``        ``Console.Write(``"NO"``);` `    ``// If the count of even numbers is greater than``    ``// or equal to K then we can select a``    ``// subarray with exactly K even integers``    ``else` `if` `(countOfTwo >= k) {``        ``Console.Write(``"Yes"``);``    ``}` `    ``// If the count of even numbers is less than K``    ``// then we cannot select any subarray with``    ``// exactly K even integers``    ``else``        ``Console.Write(``"No"``);``}` `// Driver Code``public` `static` `void` `Main()``{``    ``int` `[]arr = { 1, 2, 4, 5 };``    ``int` `K = 2;``    ``int` `n = arr.Length;` `    ``isPossible(arr, n, K);``}``}` `// This code is contributed by AbhiThakur`

## Javascript

 ``
Output:
`Yes`

Time Complexity: O(N)

Auxiliary Space: O(1)

My Personal Notes arrow_drop_up