Universal Cup Judging System

Universal Cup

Límite de tiempo: 4 s Límite de memoria: 1024 MB
Estadísticas

VegiCat은 $k$개의 비어 있지 않은 팀에 속한 $n$명의 직원이 있는 회사를 소유하고 있습니다. 직원들은 수직선으로 나타내어지는 곧은 도로를 따라 살고 있습니다. VegiCat은 그들을 위해 두 개의 모임 장소를 마련하려고 합니다.

VegiCat은 각 팀이 정확히 하나의 집합에 속하도록 팀들을 두 집합 $A$와 $B$로 나눕니다. 그는 각 집합에 대해 임의의 실수 좌표에 모임 장소를 하나씩 선택합니다. 같은 팀의 모든 직원은 반드시 같은 모임 장소로 가야 합니다. 집합 $A$에 속한 각 팀은 $A$의 모임 장소로 가고, 집합 $B$에 속한 각 팀은 $B$의 모임 장소로 갑니다. 두 집합 중 어느 것이든 비어 있을 수 있습니다.

problem_23601_7c51af3a8386a65cfea21342dbcebc71.png

$A$에 속한 팀들의 모든 직원의 집 위치 목록을 $S_A$라 하고, $B$에 대해서도 비슷하게 $S_B$를 정의합시다. 집 위치가 겹치더라도 각 직원은 개별적으로 계산됩니다.

집 위치의 목록 $S = (x_1, x_2, \ldots, x_m)$에 대하여, 이 직원들이 하나의 모임 장소로 이동하는 최소 총 이동 거리는 다음과 같습니다:

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

$S$가 비어 있을 때는 $M(S) = 0$으로 정의합니다. 팀들을 두 집합으로 나누는 모든 방법에 대해 $M(S_A) + M(S_B)$를 최소화할 수 있도록 VegiCat을 도와주세요.

입력

첫 번째 줄에 테스트 케이스의 개수를 나타내는 정수 $T$ ($1 \le T \le 3 \cdot 10^5$)가 주어집니다. 이어서 테스트 케이스의 설명이 주어집니다.

각 테스트 케이스의 첫 번째 줄에는 직원의 수와 팀의 수를 각각 나타내는 두 정수 $n$과 $k$ ($1 \le k \le n \le 3 \cdot 10^5$)가 주어집니다.

다음 $k$개의 줄에는 각각 하나의 팀에 대한 정보가 주어집니다. $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$)가 주어집니다. 한 테스트 케이스에서 모든 $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$가 됩니다.

두 번째 테스트 케이스에서 VegiCat은 위치 $3$과 $9$에 모임 장소를 선택합니다. 그는 팀 $1$과 $2$를 첫 번째 모임 장소로 보내고, 팀 $3$을 두 번째 모임 장소로 보냅니다. 팀 $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.