Given an array arr[], the task is to find the count even-odd pairs in the array.
Examples:
Input: arr[] = { 1, 2, 1, 3 }
Output: 2
Explanation:
The 2 pairs of the form (even, odd) are {2, 1} and {2, 3}.
Input: arr[] = { 5, 4, 1, 2, 3}
Output: 3
Naive Approach:
- Run two nested loops to get all the possible pairs of numbers in the array.
- For each pair, check whether if a[i] is even and a[j] is odd.
- If it is, then increase the required count by one.
- When all the pairs have been checked, print the count in the end.
Below is the implementation of the above approach:
C++
// C++ program to count the pairs in array // of the form (even, odd) #include <bits/stdc++.h> using namespace std;
// Function to count the pairs in array // of the form (even, odd) int findCount( int arr[], int n)
{ // variable to store count of such pairs
int res = 0;
// Iterate through all pairs
for ( int i = 0; i < n - 1; i++)
for ( int j = i + 1; j < n; j++)
// Increment count
// if condition is satisfied
if ((arr[i] % 2 == 0)
&& (arr[j] % 2 == 1)) {
res++;
}
return res;
} // Driver code int main()
{ int a[] = { 5, 4, 1, 2, 3 };
int n = sizeof (a) / sizeof (a[0]);
cout << findCount(a, n);
return 0;
} |
Java
// Java program to count the pairs in array // of the form (even, odd) import java.util.*;
class GFG{
// Function to count the pairs in array // of the form (even, odd) static int findCount( int arr[], int n)
{ // Variable to store count of such pairs
int res = 0 ;
// Iterate through all pairs
for ( int i = 0 ; i < n - 1 ; i++)
for ( int j = i + 1 ; j < n; j++)
// Increment count
// if condition is satisfied
if ((arr[i] % 2 == 0 ) &&
(arr[j] % 2 == 1 ))
{
res++;
}
return res;
} // Driver code public static void main(String[] args)
{ int a[] = { 5 , 4 , 1 , 2 , 3 };
int n = a.length;
System.out.print(findCount(a, n));
} } // This code is contributed by Rohit_ranjan |
Python3
# Python3 program to count the pairs # in array of the form (even, odd) # Function to count the pairs in # array of the form (even, odd) def findCount(arr, n):
# Variable to store count
# of such pairs
res = 0
# Iterate through all pairs
for i in range ( 0 , n - 1 ):
for j in range (i + 1 , n):
# Increment count
# if condition is satisfied
if ((arr[i] % 2 = = 0 ) and
(arr[j] % 2 = = 1 )):
res = res + 1
return res
# Driver code a = [ 5 , 4 , 1 , 2 , 3 ]
n = len (a)
print (findCount(a, n))
# This code is contributed by PratikBasu |
C#
// C# program to count the pairs in array // of the form (even, odd) using System;
class GFG{
// Function to count the pairs in array // of the form (even, odd) static int findCount( int []arr, int n)
{ // Variable to store count of such pairs
int res = 0;
// Iterate through all pairs
for ( int i = 0; i < n - 1; i++)
for ( int j = i + 1; j < n; j++)
// Increment count
// if condition is satisfied
if ((arr[i] % 2 == 0) &&
(arr[j] % 2 == 1))
{
res++;
}
return res;
} // Driver code public static void Main(String[] args)
{ int []a = { 5, 4, 1, 2, 3 };
int n = a.Length;
Console.Write(findCount(a, n));
} } // This code is contributed by Rohit_ranjan |
Javascript
<script> // Javascript program to count the pairs in array // of the form (even, odd) // Function to count the pairs in array // of the form (even, odd) function findCount(arr, n)
{ // variable to store count of such pairs
let res = 0;
// Iterate through all pairs
for (let i = 0; i < n - 1; i++)
for (let j = i + 1; j < n; j++)
// Increment count
// if condition is satisfied
if ((arr[i] % 2 == 0)
&& (arr[j] % 2 == 1)) {
res++;
}
return res;
} // Driver code let a = [ 5, 4, 1, 2, 3 ]; let n = a.length; document.write(findCount(a, n)); </script> |
Output:
3
Time Complexity: O(n2)
Auxiliary Space: O(1)
Efficient Approach:
- For each element starting from index 0 we will check if it’s even or not.
- If it’s even we will increase the count by 1.
- Else we will increase our final answer by count.
Below is the implementation of the above approach:
C++
// C++ program to count the pairs in array // of the form (even, odd) #include <bits/stdc++.h> using namespace std;
// Function to count the pairs in array // of the form (even, odd) int findCount( int arr[], int n)
{ int count = 0, ans = 0;
for ( int i = 0; i < n; i++) {
// check if number is even or not
if (arr[i] % 2 == 0)
count++;
else
ans = ans + count;
}
return ans;
} // Driver code int main()
{ int a[] = { 5, 4, 1, 2, 3 };
int n = sizeof (a) / sizeof (a[0]);
cout << findCount(a, n);
return 0;
} |
Java
// Java program to count the pairs // in array of the form (even, odd) class GFG{
// Function to count the pairs in // array of the form (even, odd) static int findCount( int arr[], int n)
{ int count = 0 , ans = 0 ;
for ( int i = 0 ; i < n; i++)
{
// Check if number is even
// or not
if (arr[i] % 2 == 0 )
{
count++;
}
else
{
ans = ans + count;
}
}
return ans;
} // Driver code public static void main(String[] args)
{ int a[] = { 5 , 4 , 1 , 2 , 3 };
int n = a.length;
System.out.print(findCount(a, n));
} } // This code is contributed by amal kumar choubey |
Python3
# Python3 program to count the pairs # in array of the form (even, odd) # Function to count the pairs in # array of the form (even, odd) def findCount(arr, n):
count = 0
ans = 0
for i in range ( 0 , n):
# Check if number is even or not
if (arr[i] % 2 = = 0 ):
count = count + 1
else :
ans = ans + count
return ans
# Driver code a = [ 5 , 4 , 1 , 2 , 3 ]
n = len (a)
print (findCount(a, n))
# This code is contributed by PratikBasu |
C#
// C# program to count the pairs in // array of the form (even, odd) using System;
class GFG{
// Function to count the pairs in // array of the form (even, odd) static int findCount( int []arr, int n)
{ int count = 0, ans = 0;
for ( int i = 0; i < n; i++)
{
// Check if number is even or not
if (arr[i] % 2 == 0)
{
count++;
}
else
{
ans = ans + count;
}
}
return ans;
} // Driver code public static void Main()
{ int []a = { 5, 4, 1, 2, 3 };
int n = a.Length;
Console.WriteLine(findCount(a, n));
} } // This code is contributed by Code_Mech |
Javascript
<script> // Javascript program to count the pairs in array // of the form (even, odd) // Function to count the pairs in array // of the form (even, odd) function findCount(arr, n)
{ let count = 0, ans = 0;
for (let i = 0; i < n; i++) {
// check if number is even or not
if (arr[i] % 2 == 0)
count++;
else
ans = ans + count;
}
return ans;
} // Driver code let a = [ 5, 4, 1, 2, 3 ]; let n = a.length; document.write(findCount(a, n)); // This code is contributed by subhammahato348. </script> |
Output:
3
Time Complexity: O(n)
Auxiliary Space: O(1)