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

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

게리맨더링

시간 제한1초메모리 제한128 MB

요약
인접한 선거구를 합쳐 남은 선거구의 과반에서 1당이 단독으로 승리하도록 만들 때, 필요한 최소 합치기 횟수를 구한다.
난이도

어려움10점 중 8점

유형
동적 계획법, 누적 합, 그리디, 배열
정답자
아직 제출이 없습니다

문제

정치인은 당선을 위해서라면 거의 무엇이든 합니다. 특정 후보(당연히 경계를 다시 긋는 바로 그 사람)에게 유리하도록 선거구의 경계를 다시 긋는 것도 그중 하나이며, 이런 행위를 게리맨더링이라고 부릅니다. 이 문제에서는 간단한 형태의 선형 게리맨더링을 다룹니다.

NN개의 선거구(riding)가 주어집니다(2≤N≤1000002 \le N \le 100000). 각 선거구에서는 서로 다른 pp개 정당(2≤p≤102 \le p \le 10)의 후보가 경쟁합니다. 선거구들은 일렬로 나란히 놓여 있습니다. 양 끝의 두 선거구는 이웃이 하나뿐이고, 나머지 선거구는 모두 이웃이 둘입니다. 아래는 N=4N = 4, p=2p = 2인 예시입니다.

선거구 1선거구 2선거구 3선거구 4
1번 정당 득표1416
2번 정당 득표5321

여기서 선거구 1과 2, 2와 3, 3과 4가 서로 이웃이며, 그 밖의 어떤 쌍도 이웃이 아닙니다.

경계를 정하는 담당자를 매수할 수 있습니다. 인접한 두 선거구를 하나로 합치는 데에는 정해진 비용이 듭니다. 두 선거구를 합치면 정당별로 득표수가 더해집니다(합쳐진 선거구에서 ii번 정당의 득표수는 원래 두 선거구의 ii번 정당 득표수의 합입니다). 합쳐진 선거구는 다시 합칠 수 있으므로, 연속한 선거구들의 어떤 묶음이든 하나의 선거구로 합칠 수 있습니다.

어떤 선거구에서 한 정당이 다른 모든 정당보다 득표수가 엄격히 많으면 그 정당이 그 선거구를 차지합니다(동점이면 아무도 차지하지 못합니다). 모든 합병이 끝난 뒤 선거구가 QQ개 남았다고 합시다. 1번 정당(여러분의 정당!)이 이 QQ개 중 적어도 ⌊Q/2⌋+1\lfloor Q/2 \rfloor + 1개를 차지하면 과반을 확보한 것입니다.

한 번의 합병은 인접한 두 선거구를 하나로 합쳐 선거구 수를 하나 줄입니다. 1번 정당이 남은 선거구의 과반을 차지하도록 만들기 위해 필요한 최소 합병 횟수를 구하세요.

입력

첫째 줄에 정수 NN이 주어집니다. 둘째 줄에 정수 pp가 주어집니다. 이어지는 NN개의 줄에는 각각 공백 하나로 구분된 pp개의 음이 아닌 정수가 주어집니다. 그중 ii번째 줄은 v1 v2 … vpv_1\ v_2\ \dots\ v_p이며, vjv_j는 ii번 선거구에서 jj번 정당이 받는 득표수입니다. 각 득표수는 최대 1000010000이고, 전체 득표수의 합은 2 000 000 0002\,000\,000\,000 미만입니다.

출력

정수 하나를 출력합니다. 1번 정당이 남은 선거구의 과반을 차지하기 위해 필요한 최소 합병 횟수입니다. 어떻게 합병하더라도 1번 정당이 과반을 차지할 수 없다면 −1-1을 출력합니다.

예제2

  1. 예제 1

    입력
    4
    2
    1 5
    4 3
    1 2
    6 1
    
    예상 출력
    1
    
  2. 예제 2

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