같이 던전 도실래요?

NYPC 2025 · Round 1

마비노기 모바일에 새 던전이 추가되었다. 2N2N명의 플레이어가 22인용 파티 던전에 도전하려고 한다. 각 플레이어마다 플레이 가능 시간이 분 단위로 주어지며, 22인 파티의 플레이 가능 시간은 두 플레이어의 플레이 가능 시간 중 작은 값이다.

각 플레이어는 정확히 하나의 파티에 참여해야 한다. 따라서, 총 NN개의 22인 파티가 만들어져야 한다.

두 명의 플레이어가 한 파티를 만들 때, 파티 시너지는 다음과 같이 정의된다.

파티 시너지=두 플레이어의 플레이 가능 시간 합두 플레이어의 플레이 가능 시간 차이의 절댓값\textbf{파티 시너지} = \text{두 플레이어의 플레이 가능 시간 합} - \text{두 플레이어의 플레이 가능 시간 차이의 절댓값}

던전은 무한한 개수의 방으로 이루어져 있고, 항상 첫 번째 방부터 시작하여 차례대로 방을 방문한다. 방 하나를 클리어하는 데에는 모두 동일하게 MM분이 걸린다. 방 사이를 이동하는 데에는 시간이 걸리지 않는다.

각 파티는 파티의 플레이 가능 시간 동안만 던전 공략이 가능하며, 플레이 종료 시점까지 공략이 끝나지 못한 방은 클리어하지 못한 것으로 간주된다. 플레이 종료 시점과 클리어 시점이 동일하다면, 그 방은 클리어한 것임에 유의하라.

파티의 최종 스코어는 다음과 같이 계산된다.

최종 스코어=파티 시너지×클리어한 던전 방 수\textbf{최종 스코어} = \text{파티 시너지} \times \text{클리어한 던전 방 수}

파티를 적절히 구성하여 모든 파티의 최종 스코어의 총합을 최대화하는 프로그램을 작성하라.

입력 형식

첫 줄에 파티 던전의 수를 나타내는 정수 NN과 던전의 각 방을 클리어하는 데 필요한 시간을 나타내는 정수 MM이 주어진다. (1N100000;1 \le N \le 100\,000; 1M2000001 \le M \le 200\,000)

그다음 줄에 각 플레이어가 플레이할 수 있는 시간을 나타내는 2N2N개의 정수 A1,A2,,A2NA_1, A_2, \cdots, A_{2N}이 공백으로 구분되어 주어진다. (1Ai2000001 \le A_i \le 200\,000)

출력 형식

첫 줄에 모든 파티의 최종 스코어의 총합의 최댓값을 출력한다.

예제 1

입력

2 2 3 3 5 5

출력

26

예제 2

입력

1 1 1000 1000

출력

2000000

예제 3

입력

5 1 1 2 1 2 1 2 1 2 1 2

출력

22

예제 설명

채점 방식

입력 케이스들은 다음과 같은 종류로 구별되며, 한 종류의 케이스를 다 맞혀야 그 종류에 배정된 점수를 받을 수 있다.

종류 1: 17

N=1;N = 1; 1Ai10001 \le A_i \le 1\,000

종류 2: 18

M=1;M = 1; 1Ai21 \le A_i \le 2

종류 3: 23

N5;N \le 5; 1Ai10001 \le A_i \le 1\,000

종류 4: 29

N500;N \le 500; 1Ai10001 \le A_i \le 1\,000

종류 5: 13

모든 입력 케이스가 주어짐.

해설