아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

카니발 티켓

시간 제한2초메모리 제한1024 MB

요약
정렬된 n개의 목록에서 각 목록의 원소를 하나씩 뽑아 k개의 서로소 집합을 만들고, 각 집합에서 중심 b를 최적으로 잡을 때의 총 절대편차 합을 최대화한다.
난이도

어려움10점 중 8점

유형
그리디, 정렬, 수학, 구현
정답자
아직 제출이 없습니다

문제

링고는 싱가포르의 카니발에 왔다. 가방에는 경품 게임 가판대에서 쓸 티켓이 들어 있다. 티켓은 nn가지 색 중 하나를 가지며, 음이 아닌 정수가 하나씩 적혀 있다. 서로 다른 티켓에 적힌 정수가 같을 수도 있다. 카니발 규칙의 특이한 점 때문에 nn은 항상 짝수임이 보장된다.

링고의 가방에는 각 색마다 티켓이 mm장씩, 모두 n⋅mn \cdot m장 들어 있다. 색 ii의 jj번째 티켓에는 정수 x[i][j]x[i][j]가 적혀 있다 (0≤i≤n−10 \leq i \leq n-1, 0≤j≤m−10 \leq j \leq m-1).

경품 게임은 kk라운드로 진행되며, 라운드 번호는 00부터 k−1k-1까지다. 각 라운드는 다음 순서로 진행된다.

  • 링고는 가방에서 각 색마다 티켓을 하나씩 골라 nn장의 집합을 만든다. 그런 다음 이 집합을 진행자에게 건넨다.
  • 진행자는 그 집합의 티켓에 적힌 정수 a[0],  a[1]    …    a[n−1]a[0],\;a[1]\;\;\ldots\;\;a[n-1]을 적어 둔다. 이 nn개의 정수 순서는 중요하지 않다.
  • 진행자는 행운의 추첨 상자에서 특별한 카드를 뽑아, 카드에 적힌 정수 bb를 적어 둔다.
  • 진행자는 ii가 00부터 n−1n-1까지일 때 a[i]a[i]와 bb의 절댓값 차이를 계산한다. 이 절댓값 차이의 합을 SS라고 하자.
  • 이번 라운드에서 진행자는 링고에게 값이 SS인 경품을 준다.
  • 집합에 든 티켓은 버려지며 이후 라운드에서 쓸 수 없다.

kk라운드가 끝난 뒤 링고의 가방에 남은 티켓은 버려진다.

자세히 관찰한 링고는 이 경품 게임이 조작되어 있다는 것을 알아냈다. 행운의 추첨 상자 안에는 사실 프린터가 있다. 진행자는 각 라운드마다 그 라운드 경품의 값을 최소로 만드는 정수 bb를 찾는다. 진행자가 고른 값이 그 라운드의 특별한 카드에 인쇄된다.

이 모든 사실을 아는 링고는 티켓을 라운드에 배분하려고 한다. 즉, 경품의 총합을 최대로 만들기 위해 각 라운드에 쓸 티켓 집합을 정하려고 한다.

제한

  • 2≤n≤15002 \leq n \leq 1500이고 nn은 짝수다.
  • 1≤k≤m≤15001 \leq k \leq m \leq 1500
  • 0≤x[i][j]≤1090 \leq x[i][j] \leq 10^9 (모든 0≤i≤n−10 \leq i \leq n-1, 0≤j≤m−10 \leq j \leq m - 1에 대해)
  • x[i][j−1]≤x[i][j]x[i][j-1] \leq x[i][j] (모든 0≤i≤n−10 \leq i \leq n-1, 1≤j≤m−11 \leq j \leq m-1에 대해)

예제1

  1. 예제 1

    입력
    2 1 1
    0
    0
    
    예상 출력
    0