You are given a **0-indexed** integer array `costs`

where `costs[i]`

is the cost of hiring the `i`

worker.^{th}

You are also given two integers `k`

and `candidates`

. We want to hire exactly `k`

workers according to the following rules:

- You will run
`k`

sessions and hire exactly one worker in each session. - In each hiring session, choose the worker with the lowest cost from either the first
`candidates`

workers or the last`candidates`

workers. Break the tie by the smallest index.- For example, if
`costs = [3,2,7,7,1,2]`

and`candidates = 2`

, then in the first hiring session, we will choose the`4`

worker because they have the lowest cost^{th}`[`

.__3,2__,7,7,]**1**,2 - In the second hiring session, we will choose
`1`

worker because they have the same lowest cost as^{st}`4`

worker but they have the smallest index^{th}`[`

. Please note that the indexing may be changed in the process.__3,__,7,**2**__7,2__]

- For example, if
- If there are fewer than candidates workers remaining, choose the worker with the lowest cost among them. Break the tie by the smallest index.
- A worker can only be chosen once.

Return *the total cost to hire exactly *`k`

* workers.*

**Example 1:**

Input:costs = [17,12,10,2,7,2,11,20,8], k = 3, candidates = 4Output:11Explanation:We hire 3 workers in total. The total cost is initially 0. - In the first hiring round we choose the worker from [17,12,10,2,7,2,11,20,8]. The lowest cost is 2, and we break the tie by the smallest index, which is 3. The total cost = 0 + 2 = 2. - In the second hiring round we choose the worker from [17,12,10,7,2,11,20,8]. The lowest cost is 2 (index 4). The total cost = 2 + 2 = 4. - In the third hiring round we choose the worker from [17,12,10,7,11,20,8]. The lowest cost is 7 (index 3). The total cost = 4 + 7 = 11. Notice that the worker with index 3 was common in the first and last four workers. The total hiring cost is 11.

**Example 2:**

Input:costs = [1,2,4,1], k = 3, candidates = 3Output:4Explanation:We hire 3 workers in total. The total cost is initially 0. - In the first hiring round we choose the worker from [1,2,4,1]. The lowest cost is 1, and we break the tie by the smallest index, which is 0. The total cost = 0 + 1 = 1. Notice that workers with index 1 and 2 are common in the first and last 3 workers. - In the second hiring round we choose the worker from [2,4,1]. The lowest cost is 1 (index 2). The total cost = 1 + 1 = 2. - In the third hiring round there are less than three candidates. We choose the worker from the remaining workers [2,4]. The lowest cost is 2 (index 0). The total cost = 2 + 2 = 4. The total hiring cost is 4.

**Constraints:**

`1 <= costs.length <= 10`

^{5 }`1 <= costs[i] <= 10`

^{5}`1 <= k, candidates <= costs.length`

` ````
```class Solution {
public:
long long totalCost(vector& costs, int k, int candidates) {
int n=costs.size();
priority_queue,greater> left;
priority_queue,greater> right;
vectorvisited(n,false);
int i=0,j=n-1;
for(i=0; i=n-candidates; j--)
{
if(!visited[j])
{
right.push(costs[j]);
visited[j]=true;
}
}
long long total=0;
while(k--)
{
if(!left.empty() and !right.empty())
{
if(left.top()

Office:- 660, Sector 14A, Vasundhara, Ghaziabad, Uttar Pradesh - 201012, India