Skip to content
Related Articles
Given two arrays count all pairs whose sum is an odd number
• Difficulty Level : Easy
• Last Updated : 03 Mar, 2021

Given two arrays of N and M integers. The task is to find the number of unordered pairs formed of elements from both arrays in such a way that their sum is an odd number.
Note: An element can only be one pair.
Examples:

Input: a[] = {9, 14, 6, 2, 11}, b[] = {8, 4, 7, 20}
Output:
{9, 20}, {14, 7} and {11, 8}
Input: a[] = {2, 4, 6}, b[] = {8, 10, 12}
Output:

Approach: Count the number of odd and even numbers in both the arrays and the answer to the number of pairs will be min(odd1, even2) + min(odd2, even1), because odd + even is only odd.
Below is the implementation of the above approach:

## C++

 `// C++ program to implement``// the above approach``#include ``using` `namespace` `std;` `// Function that returns the number of pairs``int` `count_pairs(``int` `a[], ``int` `b[], ``int` `n, ``int` `m)``{` `    ``// Count of odd and even numbers``    ``int` `odd1 = 0, even1 = 0;``    ``int` `odd2 = 0, even2 = 0;` `    ``// Traverse in the first array``    ``// and count the number of odd``    ``// and evene numbers in them``    ``for` `(``int` `i = 0; i < n; i++) {``        ``if` `(a[i] % 2)``            ``odd1++;``        ``else``            ``even1++;``    ``}` `    ``// Traverse in the second array``    ``// and count the number of odd``    ``// and evene numbers in them``    ``for` `(``int` `i = 0; i < m; i++) {``        ``if` `(b[i] % 2)``            ``odd2++;``        ``else``            ``even2++;``    ``}` `    ``// Count the number of pairs``    ``int` `pairs = min(odd1, even2) + min(odd2, even1);` `    ``// Return the number of pairs``    ``return` `pairs;``}` `// Driver code``int` `main()``{``    ``int` `a[] = { 9, 14, 6, 2, 11 };``    ``int` `b[] = { 8, 4, 7, 20 };``    ``int` `n = ``sizeof``(a) / ``sizeof``(a);``    ``int` `m = ``sizeof``(b) / ``sizeof``(b);``    ``cout << count_pairs(a, b, n, m);` `    ``return` `0;``}`

## Java

 `// Java program to implement``// the above approach` `class` `GFG {` `    ``// Function that returns the number of pairs``    ``static` `int` `count_pairs(``int` `a[], ``int` `b[], ``int` `n, ``int` `m)``    ``{` `        ``// Count of odd and even numbers``        ``int` `odd1 = ``0``, even1 = ``0``;``        ``int` `odd2 = ``0``, even2 = ``0``;` `        ``// Traverse in the first array``        ``// and count the number of odd``        ``// and evene numbers in them``        ``for` `(``int` `i = ``0``; i < n; i++) {``            ``if` `(a[i] % ``2` `== ``1``) {``                ``odd1++;``            ``}``            ``else` `{``                ``even1++;``            ``}``        ``}` `        ``// Traverse in the second array``        ``// and count the number of odd``        ``// and evene numbers in them``        ``for` `(``int` `i = ``0``; i < m; i++) {``            ``if` `(b[i] % ``2` `== ``1``) {``                ``odd2++;``            ``}``            ``else` `{``                ``even2++;``            ``}``        ``}` `        ``// Count the number of pairs``        ``int` `pairs = Math.min(odd1, even2) + Math.min(odd2, even1);` `        ``// Return the number of pairs``        ``return` `pairs;``    ``}` `    ``// Driver code``    ``public` `static` `void` `main(String[] args)``    ``{``        ``int` `a[] = { ``9``, ``14``, ``6``, ``2``, ``11` `};``        ``int` `b[] = { ``8``, ``4``, ``7``, ``20` `};``        ``int` `n = a.length;``        ``int` `m = b.length;``        ``System.out.println(count_pairs(a, b, n, m));``    ``}``}` `// This code contributed by Rajput-Ji`

## Python3

 `# Python 3 program to implement``# the above approach` `# Function that returns``# the number of pairs``def` `count_pairs(a, b, n, m):``    ` `    ``# Count of odd and even numbers``    ``odd1 ``=` `0``    ``even1 ``=` `0``    ``odd2 ``=` `0``    ``even2 ``=` `0` `    ``# Traverse in the first array``    ``# and count the number of odd``    ``# and evene numbers in them``    ``for` `i ``in` `range``(n):``        ``if` `(a[i] ``%` `2``):``            ``odd1 ``+``=` `1``        ``else``:``            ``even1 ``+``=` `1` `    ``# Traverse in the second array``    ``# and count the number of odd``    ``# and evene numbers in them``    ``for` `i ``in` `range``(m):``        ``if` `(b[i] ``%` `2``):``            ``odd2 ``+``=` `1``        ``else``:``            ``even2 ``+``=` `1` `    ``# Count the number of pairs``    ``pairs ``=` `(``min``(odd1, even2) ``+``             ``min``(odd2, even1))` `    ``# Return the number of pairs``    ``return` `pairs` `# Driver code``if` `__name__ ``=``=` `'__main__'``:``    ``a ``=` `[``9``, ``14``, ``6``, ``2``, ``11``]``    ``b ``=` `[``8``, ``4``, ``7``, ``20``]``    ``n ``=` `len``(a)``    ``m ``=` `len``(b)``    ``print``(count_pairs(a, b, n, m))` `# This code is contributed by``# Surendra_Gangwar`

## C#

 `// C# program to implement``// the above approach``using` `System;` `class` `GFG {` `    ``// Function that returns the number of pairs``    ``static` `int` `count_pairs(``int``[] a, ``int``[] b, ``int` `n, ``int` `m)``    ``{` `        ``// Count of odd and even numbers``        ``int` `odd1 = 0, even1 = 0;``        ``int` `odd2 = 0, even2 = 0;` `        ``// Traverse in the first array``        ``// and count the number of odd``        ``// and evene numbers in them``        ``for` `(``int` `i = 0; i < n; i++) {``            ``if` `(a[i] % 2 == 1) {``                ``odd1++;``            ``}``            ``else` `{``                ``even1++;``            ``}``        ``}` `        ``// Traverse in the second array``        ``// and count the number of odd``        ``// and evene numbers in them``        ``for` `(``int` `i = 0; i < m; i++) {``            ``if` `(b[i] % 2 == 1) {``                ``odd2++;``            ``}``            ``else` `{``                ``even2++;``            ``}``        ``}` `        ``// Count the number of pairs``        ``int` `pairs = Math.Min(odd1, even2) + Math.Min(odd2, even1);` `        ``// Return the number of pairs``        ``return` `pairs;``    ``}` `    ``// Driver code``    ``static` `public` `void` `Main()``    ``{``        ``int``[] a = { 9, 14, 6, 2, 11 };``        ``int``[] b = { 8, 4, 7, 20 };``        ``int` `n = a.Length;``        ``int` `m = b.Length;``        ``Console.WriteLine(count_pairs(a, b, n, m));``    ``}``}` `// This code contributed by ajit.`

## PHP

 ``

## Javascript

 ``
Output:
`3`

Attention reader! Don’t stop learning now. Get hold of all the important Comcompetitivepetitve Programming concepts with the Competitive Programming Live  course.

My Personal Notes arrow_drop_up