Three way partitioning
Submissions: 4046   Accuracy:

33.96%

  Difficulty: Easy   Marks: 2
Associated Course(s):   Interview Preparation
     

Given an array A and a range [a, b]. The task is to complete the function threeWayPartition which partition the array around the range such that array is divided in three parts.
1) All elements smaller than a come first.
2) All elements in range a to b come next.
3) All elements greater than b appear in the end.
The individual elements of three sets can appear in any order. You are required to return the modified arranged array.

Input:
The first line of input contains an integer T denoting the number of test cases. Then T test cases follow. Each test case contains an integer N denoting the size of the array. Then in the next line are N space separated values of the array (A[]).

Output:
For each test case the output will be 1 if the array is properly arranged else it would be 0.

Constraints:
1 <= T <= 100
1 <= N <= 105
1 <= A[i] <= 106

User Task:
The task is to complete the function threeWayPartition() which should segregate the elements as required.

Example:
Input:
2
5
1 2 3 3 4
1 2
3
1 2 3
1 3

Output:
1
1

Explanation:
Testcase 2
: First, array has elements less than or equal to 1. Then, elements between 1 and 3. And, finally elements greater than 3. So, output is 1.

 

** For More Input/Output Examples Use 'Expected Output' option **

Contributor: Shubham Joshi
Author: Shubham Joshi 1


Need help with your code? Please use ide.geeksforgeeks.org, generate link and share the link here.

to report an issue on this page.