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

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

선거

면접 대비

시간 제한3초메모리 제한512 MB

요약
n번 후보의 득표 합이 다른 모든 후보보다 크지 않도록 취소할 투표소의 최소 개수를 고른다.
난이도

보통10점 중 5점

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

문제

바이트부르크 상원 선거가 다가온다. 여당인 "연합 바이틀랜드"는 안정과 지속 가능한 발전을 위해 상원의 모든 의석을 차지하곤 했다. 하지만 올해는 어느 선거구에 야당 후보가 한 명 있다. 야당 의원이 단 한 명이라도 있으면 상원의 안정이 흔들릴 수 있으므로, 당 대표는 야당 후보가 당선되지 않도록 해 달라고 부탁한다.

후보는 nn명이고 번호는 1부터 nn까지다. 후보 nn이 야당 후보이다. 선거구에는 투표소가 mm개 있고 번호는 1부터 mm까지다. 각 투표소에서 각 후보가 받은 표 수를 알고 있다. 야당 후보의 당선을 막기 위해 할 수 있는 일은 일부 투표소의 개표 결과를 무효로 만드는 것뿐이다. 무효로 만들지 않은 모든 투표소에서 야당 후보가 얻은 표의 합이 다른 모든 후보의 같은 합보다 엄격히 크면 야당 후보가 당선된다.

최소 개수의 투표소에서 개표 결과를 무효로 만들어 야당 후보의 당선을 막아야 한다. 모든 투표소의 선거를 무효로 만들면 각 후보의 표 수가 0이 되어 야당 후보가 당선되지 않으므로 답은 항상 존재한다.

입력

첫째 줄에 두 정수 nn과 mm이 주어진다(2≤n≤1002\le n\le 100; 1≤m≤1001\le m \le 100). nn은 후보의 수, mm은 투표소의 수다. 다음 mm개 줄에는 각 투표소의 개표 결과가 nn개의 수로 주어진다. ii번째 줄의 jj번째 수는 투표소 ii에서 후보 jj가 받은 표 수 a_i,ja\_{i,j}이다(0≤a_i,j≤1 0000\le a\_{i,j} \le 1\,000).

출력

첫째 줄에 개표 결과를 무효로 만들어야 하는 투표소의 최소 개수 kk를 출력한다. 둘째 줄에 무효로 만든 투표소의 번호 kk개를 순서에 상관없이 출력한다. kk개 투표소의 결과를 무효로 만드는 방법이 여러 가지라면 그중 아무거나 출력한다.

힌트

첫 번째 예에서 후보 1부터 5는 각각 14, 12, 13, 15, 24표를 얻었다. 야당 후보가 가장 많은 표를 얻었다. 그러나 첫 번째와 세 번째 투표소의 개표 결과를 무효로 만들면 두 번째 투표소의 결과만 남아 표 합이 3, 7, 5, 6, 7이 되고, 야당 후보가 더 이상 선두가 아니다.

예제3

  1. 예제 1

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

    입력
    2 1
    1 1
    
    예상 출력
    0
    
  3. 예제 3

    입력
    3 3
    2 3 8
    4 2 9
    3 1 7
    
    예상 출력
    3
    1 2 3