돌고래 사진

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

요약
N마리의 돌고래가 정해진 시각에 묘기를 펼치고, K시간 동안 카메라를 설치하거나 방문해 아직 촬영하지 않은 돌고래를 찍을 때 촬영할 수 있는 서로 다른 돌고래 수의 최댓값을 구한다.
난이도

어려움10점 중 8점

유형
동적 계획법, 그리디, 정렬, 이분 탐색
정답자
아직 제출이 없습니다

문제

바다에 NN마리의 돌고래가 살고 있다. 각 돌고래에는 11번부터 NN번까지 번호가 붙어 있고, 각 돌고래는 자신만의 서식지에 살고 있다. 돌고래들은 가끔씩 자신의 서식지에서 묘기를 펼친다.

사진가 승진이는 돌고래들의 묘기를 촬영하기 위해 바다에 왔다. 승진에게 주어진 시간은 총 KK시간이다. 시각 tt (1≤t≤K)(1\le t\le K)에 승진이는 다음과 같은 세 가지 행동 중 하나를 할 수 있다.

  • 아직 카메라가 없는 서식지 중 하나를 골라 카메라를 설치한다.
  • 이전에 카메라를 설치한 서식지 중 하나를 방문해 돌고래의 모습을 촬영한다. 이때, 아직 촬영한 적이 없는 돌고래만 촬영할 수 있다.
  • 아무것도 하지 않는다.

돌고래들이 묘기를 펼치는 시각에 대한 N×KN\times K 크기의 행렬 MM이 있다. 만약 M_i,j=1M\_{i,j}=1이라면, ii번 돌고래는 시각 jj에 묘기를 펼친다. 만약 M_i,j=0M\_{i,j}=0이라면, ii번 돌고래는 시각 jj에 묘기를 펼치지 않는다.

승진이는 최대한 많은 수의 돌고래의 묘기를 촬영하고자 한다. 승진이가 최적으로 행동할 때, 묘기를 촬영할 수 있는 서로 다른 돌고래가 최대 몇 마리인지 구해 보자.

입력

첫 번째 줄에 돌고래의 수 NN과 승진에게 주어진 시간 KK가 공백을 사이에 두고 주어진다.

두 번째 줄부터 N+1N+1번째 줄까지, i+1i+1번째 줄에는 KK개의 정수 M_i,1,M_i,2,⋯ ,M_i,KM\_{i,1},M\_{i,2},\cdots ,M\_{i,K}가 공백을 사이에 두고 주어진다.

출력

묘기를 촬영할 수 있는 서로 다른 돌고래가 최대 몇 마리인지 출력한다.

제한

  • 주어지는 모든 수는 정수이다.
  • 2≤N≤4002\le N\le 400
  • 2≤K≤8002\le K\le 800
  • M_i,j∈0,1M\_{i,j}\in\\{0,1\\} (1≤i≤N,1≤j≤K)(1\le i\le N,1\le j\le K)

예제4

  1. 예제 1

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

    입력
    6 10
    0 0 1 1 0 0 0 0 0 0
    0 0 0 1 0 0 0 0 0 0
    1 1 1 1 0 1 1 0 0 0
    0 0 0 0 0 0 1 0 0 0
    0 0 0 0 0 1 0 0 0 1
    0 0 1 0 0 0 0 0 0 0
    
    예상 출력
    4
    
  3. 예제 3

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

    입력
    3 4
    0 0 0 1
    0 0 0 1
    0 0 0 1
    
    예상 출력
    1