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 <= 10^{5}

1 <= A[i] <= 10^{6}

**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.

Author: Shubham Joshi 1

11620078 | 164 |

RohitBattu | 127 |

Maninder07 | 126 |

blackshadows | 120 |

Rags Bhasin | 110 |

blackshadows | 880 |

xmyqsh | 565 |

mb1973 | 439 |

aman19 | 402 |

shubhamjain237 | 376 |

akhayrutdinov | 5014 |

Ibrahim Nash | 4899 |

Quandray | 4338 |

sanjay05 | 3668 |

blackshadows | 3384 |

Login to report an issue on this page.