There is a long and thin painting that can be represented by a number line. The painting was painted with multiple overlapping segments where each segment was painted with a **unique** color. You are given a 2D integer array `segments`, where `segments[i] = [starti, endi, colori]` represents the **half-closed segment** `[starti, endi)` with `colori` as the color.

The colors in the overlapping segments of the painting were **mixed** when it was painted. When two or more colors mix, they form a new color that can be represented as a **set** of mixed colors.

*   For example, if colors `2`, `4`, and `6` are mixed, then the resulting mixed color is `{2,4,6}`.

For the sake of simplicity, you should only output the **sum** of the elements in the set rather than the full set.

You want to **describe** the painting with the **minimum** number of non-overlapping **half-closed segments** of these mixed colors. These segments can be represented by the 2D array `painting` where `painting[j] = [leftj, rightj, mixj]` describes a **half-closed segment** `[leftj, rightj)` with the mixed color **sum** of `mixj`.

*   For example, the painting created with `segments = [[1,4,5],[1,7,7]]` can be described by `painting = [[1,4,12],[4,7,7]]` because:
    *   `[1,4)` is colored `{5,7}` (with a sum of `12`) from both the first and second segments.
    *   `[4,7)` is colored `{7}` from only the second segment.

Return _the 2D array_ `painting` _describing the finished painting (excluding any parts that are **not** painted). You may return the segments in **any order**_.

A **half-closed segment** `[a, b)` is the section of the number line between points `a` and `b` **including** point `a` and **not including** point `b`.

**Example 1:**

**Input:** segments = \[\[1,4,5\],\[4,7,7\],\[1,7,9\]\]
**Output:** \[\[1,4,14\],\[4,7,16\]\]
**Explanation:** The painting can be described as follows:
- \[1,4) is colored {5,9} (with a sum of 14) from the first and third segments.
- \[4,7) is colored {7,9} (with a sum of 16) from the second and third segments.

**Example 2:**

**Input:** segments = \[\[1,7,9\],\[6,8,15\],\[8,10,7\]\]
**Output:** \[\[1,6,9\],\[6,7,24\],\[7,8,15\],\[8,10,7\]\]
**Explanation:** The painting can be described as follows:
- \[1,6) is colored 9 from the first segment.
- \[6,7) is colored {9,15} (with a sum of 24) from the first and second segments.
- \[7,8) is colored 15 from the second segment.
- \[8,10) is colored 7 from the third segment.

**Example 3:**

**Input:** segments = \[\[1,4,5\],\[1,4,7\],\[4,7,1\],\[4,7,11\]\]
**Output:** \[\[1,4,12\],\[4,7,12\]\]
**Explanation:** The painting can be described as follows:
- \[1,4) is colored {5,7} (with a sum of 12) from the first and second segments.
- \[4,7) is colored {1,11} (with a sum of 12) from the third and fourth segments.
Note that returning a single segment \[1,7) is incorrect because the mixed color sets are different.

**Constraints:**

*   `1 <= segments.length <= 2 * 104`
*   `segments[i].length == 3`
*   `1 <= starti < endi <= 105`
*   `1 <= colori <= 109`
*   Each `colori` is distinct.

숫자 선으로 표현할 수 있는 길고 얇은 그림이 있습니다. 이 그림은 여러 개의 겹치는 세그먼트로 칠해져 있으며 각 세그먼트는 **고유한** 색으로 칠해져 있습니다. 2D 정수 배열 `segments`가 주어지며, 여기서 `segments[i] = [starti, endi, colori]`는 `color`를 색으로 사용하여 **반쯤 닫힌 세그먼트** `[starti, endi)`를 나타냅니다.

그림의 겹치는 부분의 색상은 그림이 칠해졌을 때 **혼합**되었습니다. 두 가지 이상의 색이 혼합되면 혼합된 색의 **세트**로 표현할 수 있는 새로운 색을 형성합니다.

* 예를 들어 `2`, `4`, `6` 색상이 혼합된 경우 결과 혼합 색상은 `{2,4,6}`입니다.

단순화를 위해 전체 집합이 아닌 집합에 포함된 요소의 **합계**만 출력해야 합니다.

이러한 혼합된 색상의 겹치지 않는 **반쯤 닫힌 세그먼트**의 **최소** 개수로 그림을 **설명**하고 싶습니다. 이러한 세그먼트는 2D 배열 '그림'으로 나타낼 수 있는데, 여기서 '그림[j] = [왼쪽j, 오른쪽j, 믹스제이]`는 '믹스제이'의 혼합 색상 **합계**를 가진 **반 닫힌 세그먼트** `[왼쪽j, 오른쪽j)`를 설명합니다.

* 예를 들어, `segments = [[1,4,5],[1,7,7]]`로 생성된 그림은 `painting = [[1,4,12],[4,7,7]]`로 설명할 수 있습니다:
    * `[1,4)`는 첫 번째와 두 번째 세그먼트 모두에서 `{5,7}`(합이 `12`)로 채색됩니다.
    * `[4,7)`은 두 번째 세그먼트에서만 `{7}`으로 채색됩니다.

완성된 페인팅을 설명하는 2D 배열 '페인팅'을 반환합니다(**색칠되지** 않은 부분은 제외). 세그먼트는 **어떤 순서로든**_ 반환할 수 있습니다.

반쯤 닫힌 세그먼트** `[a, b)`는 점 `a`와 점 `b` 사이의 숫자 선의 구간으로, 점 `a`를 포함하고 점 `b`를 포함하지 않습니다.

**예제 1:**

**입력:** 세그먼트 = \[\[1,4,5\],\[4,7,7\],\[1,7,9\]\]
**Output:** \[\[1,4,14\],\[4,7,16\]\]
**설명:** 그림은 다음과 같이 설명할 수 있습니다:
- \[1,4)는 첫 번째와 세 번째 세그먼트에서 {5,9}(합이 14)로 채색됩니다.
- 4,7)은 두 번째와 세 번째 세그먼트에서 {7,9}(합이 16)로 채색됩니다.

**예제 2:**

**Input:** segments = \[\[1,7,9\],\[6,8,15\],\[8,10,7\]\]
**Output:** \[\[1,6,9\],\[6,7,24\],\[7,8,15\],\[8,10,7\]\]
**설명:** 그림은 다음과 같이 설명할 수 있습니다:
- \[1,6)은 첫 번째 세그먼트부터 9색으로 채색됩니다.
- 6,7)은 첫 번째와 두 번째 세그먼트에서 {9,15}(합이 24)로 채색됩니다.
- 7,8)은 두 번째 세그먼트에서 15로 채색됩니다.
- 8,10)은 세 번째 세그먼트에서 7로 채색됩니다.

**예제 3:**

**Input:** segments = \[\[1,4,5\],\[1,4,7\],\[4,7,1\],\[4,7,11\]\]
**Output:** \[\[1,4,12\],\[4,7,12\]\]
**설명:** 그림은 다음과 같이 설명할 수 있습니다:
- \[1,4)는 첫 번째와 두 번째 세그먼트에서 {5,7}(합이 12)로 채색됩니다.
- 4,7)은 세 번째와 네 번째 세그먼트에서 {1,11}(합이 12)로 채색됩니다.
혼합 색상 집합이 다르기 때문에 단일 세그먼트 \[1,7)을 반환하는 것은 올바르지 않습니다.

**제약 조건:**

* `1 <= segments.length <= 2 * 104`
* `segments[i].length == 3`
* `1 <= starti <= endi <= 105`
* `1 <= colori <= 109`
* 각 `색상`은 고유합니다.
