You are the operator of a Centennial Wheel that has **four gondolas**, and each gondola has room for **up** **to** **four people**. You have the ability to rotate the gondolas **counterclockwise**, which costs you `runningCost` dollars.

You are given an array `customers` of length `n` where `customers[i]` is the number of new customers arriving just before the `ith` rotation (0-indexed). This means you **must rotate the wheel** `i` **times before the** `customers[i]` **customers arrive**. **You cannot make customers wait if there is room in the gondola**. Each customer pays `boardingCost` dollars when they board on the gondola closest to the ground and will exit once that gondola reaches the ground again.

You can stop the wheel at any time, including **before** **serving** **all** **customers**. If you decide to stop serving customers, **all subsequent rotations are free** in order to get all the customers down safely. Note that if there are currently more than four customers waiting at the wheel, only four will board the gondola, and the rest will wait **for the next rotation**.

Return _the minimum number of rotations you need to perform to maximize your profit._ If there is **no scenario** where the profit is positive, return `-1`.

**Example 1:**

**Input:** customers = \[8,3\], boardingCost = 5, runningCost = 6
**Output:** 3
**Explanation:** The numbers written on the gondolas are the number of people currently there.
1. 8 customers arrive, 4 board and 4 wait for the next gondola, the wheel rotates. Current profit is 4 \* $5 - 1 \* $6 = $14.
2. 3 customers arrive, the 4 waiting board the wheel and the other 3 wait, the wheel rotates. Current profit is 8 \* $5 - 2 \* $6 = $28.
3. The final 3 customers board the gondola, the wheel rotates. Current profit is 11 \* $5 - 3 \* $6 = $37.
The highest profit was $37 after rotating the wheel 3 times.

**Example 2:**

**Input:** customers = \[10,9,6\], boardingCost = 6, runningCost = 4
**Output:** 7
**Explanation:**
1. 10 customers arrive, 4 board and 6 wait for the next gondola, the wheel rotates. Current profit is 4 \* $6 - 1 \* $4 = $20.
2. 9 customers arrive, 4 board and 11 wait (2 originally waiting, 9 newly waiting), the wheel rotates. Current profit is 8 \* $6 - 2 \* $4 = $40.
3. The final 6 customers arrive, 4 board and 13 wait, the wheel rotates. Current profit is 12 \* $6 - 3 \* $4 = $60.
4. 4 board and 9 wait, the wheel rotates. Current profit is 16 \* $6 - 4 \* $4 = $80.
5. 4 board and 5 wait, the wheel rotates. Current profit is 20 \* $6 - 5 \* $4 = $100.
6. 4 board and 1 waits, the wheel rotates. Current profit is 24 \* $6 - 6 \* $4 = $120.
7. 1 boards, the wheel rotates. Current profit is 25 \* $6 - 7 \* $4 = $122.
The highest profit was $122 after rotating the wheel 7 times.

**Example 3:**

**Input:** customers = \[3,4,0,5,1\], boardingCost = 1, runningCost = 92
**Output:** -1
**Explanation:**
1. 3 customers arrive, 3 board and 0 wait, the wheel rotates. Current profit is 3 \* $1 - 1 \* $92 = -$89.
2. 4 customers arrive, 4 board and 0 wait, the wheel rotates. Current profit is 7 \* $1 - 2 \* $92 = -$177.
3. 0 customers arrive, 0 board and 0 wait, the wheel rotates. Current profit is 7 \* $1 - 3 \* $92 = -$269.
4. 5 customers arrive, 4 board and 1 waits, the wheel rotates. Current profit is 11 \* $1 - 4 \* $92 = -$357.
5. 1 customer arrives, 2 board and 0 wait, the wheel rotates. Current profit is 13 \* $1 - 5 \* $92 = -$447.
The profit was never positive, so return -1.

**Constraints:**

*   `n == customers.length`
*   `1 <= n <= 105`
*   `0 <= customers[i] <= 50`
*   `1 <= boardingCost, runningCost <= 100`

당신은 **4개의 곤돌라**가 있는 센테니얼 휠의 운영자이며, 각 곤돌라에는 **최대** **4명**이 탑승할 수 있는 공간이 있습니다. 곤돌라를 **시계 반대 방향으로** 회전할 수 있으며, 이 경우 `주행 비용` 달러가 필요합니다.

길이 'n'의 배열 'customers'가 주어지며, 여기서 'customers[i]`는 '번째' 회전 직전에 도착한 새로운 고객의 수입니다(0 인덱싱). 즉, `고객[i]` 고객이 도착하기 전에 **휠을 **1회** 회전해야 합니다. **곤돌라에 자리가 있으면 고객을 기다리게 할 수 없습니다**. 각 고객은 지상에서 가장 가까운 곤돌라에 탑승할 때 '탑승 비용'을 지불하고 곤돌라가 다시 지상에 도착하면 하차합니다.

모든** **고객**에게 **서비스를 제공하기 전을 포함하여 언제든지 바퀴를 멈출 수 있습니다. 고객 서비스를 중단하기로 결정한 경우, 모든 고객이 안전하게 하차할 수 있도록 이후 모든 회전은 무료입니다. 현재 4명이 넘는 고객이 대기 중인 경우 4명만 곤돌라에 탑승하고 나머지는 다음 회차를 **대기**하게 됩니다.

수익을 최대화하기 위해 수행해야 하는 최소 회전 수를 반환합니다. 수익이 양수인 시나리오가 **없다면, `-1`을 반환합니다.

**예제 1:**

**Input:** customers = \[8,3\], 탑승 비용 = 5, 주행 비용 = 6
**출력:** 3
**설명:** 곤돌라에 표시된 숫자는 현재 곤돌라에 탑승한 인원 수입니다.
1. 8명의 손님이 도착하여 4명이 탑승하고 4명이 다음 곤돌라를 기다리면 바퀴가 회전합니다. 현재 수익은 4 \* $5 - 1 \* $6 = $14입니다.
2. 3명의 손님이 도착하고 4명이 탑승하고 나머지 3명이 기다리면 바퀴가 회전합니다. 현재 수익은 8 \* $5 - 2 \* $6 = $28입니다.
3. 마지막 3명의 고객이 곤돌라에 탑승하면 바퀴가 회전합니다. 현재 수익은 11 \* $5 - 3 \* $6 = $37입니다.
바퀴를 3번 회전한 후 가장 높은 수익은 $37입니다.

**예제 2:**

**Input:** customers = \[10,9,6\], 탑승 비용 = 6, 주행 비용 = 4
**출력:** 7
**설명:**
1. 10명의 고객이 도착하여 4명이 탑승하고 6명이 다음 곤돌라를 기다리며 바퀴가 회전합니다. 현재 수익은 4 \* $6 - 1 \* $4 = $20입니다.
2. 9명의 고객이 도착하고 4명이 탑승하고 11명이 대기 중(원래 대기 중인 2명, 새로 대기 중인 9명)이며, 바퀴가 회전합니다. 현재 수익은 8 \* $6 - 2 \* $4 = $40입니다.
3. 마지막 6명의 손님이 도착하고 4명이 탑승하고 13명이 대기하면 바퀴가 회전합니다. 현재 수익은 12 \* $6 - 3 \* $4 = $60입니다.
4. 4명이 탑승하고 9명이 기다리면 바퀴가 회전합니다. 현재 수익은 16 \* $6 - 4 \* $4 = $80입니다.
5. 4 보드와 5 대기, 휠이 회전합니다. 현재 수익은 20 \* $6 - 5 \* $4 = $100입니다.
6. 4 보드와 1 대기, 휠이 회전합니다. 현재 수익은 24 \* $6 - 6 \* $4 = $120입니다.
7. 1 보드, 휠이 회전합니다. 현재 수익은 25 \* $6 - 7 \* $4 = $122입니다.
휠을 7번 회전한 후 가장 높은 수익은 $122입니다.

**예 3:**

**Input:** customers = \[3,4,0,5,1\], 탑승 비용 = 1, 주행 비용 = 92
**출력:** -1
**설명:**
1. 손님 3명이 도착하고, 3명이 탑승하고, 0명이 대기하면 바퀴가 회전합니다. 현재 수익은 3 \* $1 - 1 \* $92 = -$89입니다.
2. 손님 4명이 도착하고, 4명이 탑승하고, 0명이 대기하면 바퀴가 회전합니다. 현재 수익은 7 \* $1 - 2 \* $92 = -$177입니다.
3. 손님 0명 도착, 손님 0명 탑승, 손님 0명 대기, 바퀴가 회전합니다. 현재 수익은 7 \* $1 - 3 \* $92 = -$269입니다.
4. 5명의 손님이 도착하고, 4명이 탑승하고 1명이 대기하며, 바퀴가 회전합니다. 현재 수익은 11 \* $1 - 4 \* $92 = -$357입니다.
5. 손님 1명이 도착하고, 2명이 탑승하고, 0명이 대기하면 바퀴가 회전합니다. 현재 수익은 13 \* $1 - 5 \* $92 = -$447입니다.
이익은 양수가 아니므로 -1을 반환합니다.

**제약 조건:**

* `n == customers.length`
* `1 <= n <= 105`
* `0 <= customers[i] <= 50`
* `1 <= 탑승 비용, 주행 비용 <= 100`
