Universal Cup Judging System

Universal Cup

시간 제한: 4 s 메모리 제한: 1024 MB
통계

VegiCat は $k$ 個の空でないチームに分かれた $n$ 人の従業員がいる会社を経営しています。従業員たちは数直線として表されるまっすぐな道路沿いに住んでいます。VegiCat は彼らのために $2$ つの集合場所を手配したいと考えています。

VegiCat はチームを $2$ つの集合 $A$ と $B$ に分割し、各チームがちょうど一方の集合に属するようにします。彼は各集合に対して任意の実数座標に集合場所を $1$ つずつ選びます。同じチームのすべての従業員は同じ集合場所に行かなければなりません。 集合 $A$ に属する各チームは $A$ の集合場所へ行き、集合 $B$ に属する各チームは $B$ の集合場所へ行きます。どちらの集合も空であって構いません。

problem_23601_7c51af3a8386a65cfea21342dbcebc71.png

$A$ に属するチームの全従業員の自宅位置を並べたリストを $S_A$ とし、$B$ についても同様に $S_B$ を定義します。自宅位置が重複している場合でも、各従業員は別々に数えられます。

自宅位置のリスト $S = (x_1, x_2, \ldots, x_m)$ に対し、これらの従業員が $1$ つの集合場所へ移動するための最小の合計移動距離は

$$M(S) = \min_{p \in \mathbb{R}} \sum_{j=1}^{m} |x_j - p|.$$

$S$ が空のときは $M(S) = 0$ と定義します。チームを $2$ つの集合に分割するすべての方法にわたって $M(S_A) + M(S_B)$ を最小化するよう VegiCat を助けてください。

入力

最初の行には、テストケースの個数を表す整数 $T$($1 \le T \le 3 \cdot 10^5$)が与えられます。続いて各テストケースの説明が与えられます。

各テストケースの最初の行には、それぞれ従業員の数とチームの数を表す $2$ つの整数 $n$ と $k$($1 \le k \le n \le 3 \cdot 10^5$)が与えられます。

続く $k$ 行はそれぞれ $1$ つのチームを説明します。$i$ 行目には、チーム $i$ の従業員数を表す整数 $m_i$($1 \le m_i \le n$)と、それに続く彼らの自宅位置を表す $m_i$ 個の整数 $x_{i,1}, \ldots, x_{i,m_i}$($1 \le x_{i,j} \le 10^7$)が与えられます。$1$ つのテストケースにおけるすべての $m_i$ の総和は $n$ です。

自宅位置は重複する場合があり、任意の順序で与えられることがあります。

すべてのテストケースにわたる $n$ の総和は $3 \cdot 10^5$ を超えないことが保証されています。

出力

各テストケースについて、あり得る最小の合計移動距離を表す整数を出力してください。

入出力例

入力 1

2
4 2
2 1 3
2 8 10
8 3
3 4 12 1
2 3 2
3 9 8 10

出力 1

4
15

注記

最初のテストケースでは、VegiCat はチーム $1$ を位置 $1$ の集合場所へ、チーム $2$ を位置 $8$ の集合場所へ向かわせます。各チームの従業員は合計距離 $2$ ずつ移動するため、答えは $4$ となります。

$2$ 番目のテストケースでは、VegiCat は位置 $3$ と $9$ に集合場所を選びます。彼はチーム $1$ と $2$ を最初の集合場所へ、チーム $3$ を $2$ 番目の集合場所へ向かわせます。チーム $1$、$2$、$3$ の従業員の合計移動距離はそれぞれ $12$、$1$、$2$ となり、答えは $15$ となります。

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.