만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

그림 교환

면접 대비

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

요약
누가 누구에게 얼마에 팔 수 있는지 주어질 때, 1번을 시작으로 각 되팔기 가격이 산 가격보다 낮아지지 않게 하면서 서로 다른 사람이 가장 많이 소유하는 연쇄를 찾는다.
난이도

보통10점 중 6점

유형
동적 계획법, 비트 연산, 그리디, 그래프
정답자
아직 제출이 없습니다

문제

예술을 사랑하는 사람들이 시장에 모여 한 그림을 거래하려고 한다. 모든 거래는 다음 두 조건을 만족해야 한다.

  1. 그림을 팔 때는 자신이 산 가격보다 크거나 같은 가격으로 팔아야 한다.
  2. 같은 사람이 같은 그림을 두 번 이상 살 수 없다.

시장에 새 그림 하나가 들어왔다. 1번 예술가는 이 그림을 외부 상인에게 가격 0으로 샀고, 이제 다른 예술가들에게 팔 수 있다. 위 조건을 만족하는 거래만 이루어진다고 할 때, 한 번이라도 그림을 소유한 사람 수의 최댓값을 구하시오. 1번 예술가와 마지막 소유자도 수에 포함한다.

입력

첫째 줄에 예술가의 수 N이 주어진다. N은 2 <= N <= 15를 만족하는 정수이다.

둘째 줄부터 N개의 줄에는 각각 N개의 숫자가 주어진다. i번째 줄의 j번째 숫자는 j번 예술가가 i번 예술가에게서 그 그림을 살 때 지불하는 가격이다. 가격 0이 가장 낮고, 가격 9가 가장 높다.

출력

잠시라도 그림을 소유했던 사람을 모두 포함하여, 그림을 소유할 수 있는 사람 수의 최댓값을 출력한다.

예제5

  1. 예제 1

    입력
    3
    022
    101
    110
    
    예상 출력
    2
    
  2. 예제 2

    입력
    2
    01
    10
    
    예상 출력
    2
    
  3. 예제 3

    입력
    5
    01231
    00231
    00031
    00002
    00000
    
    예상 출력
    4
    
  4. 예제 4

    입력
    5
    15555
    11111
    15111
    11111
    11111
    
    예상 출력
    3
    
  5. 예제 5

    입력
    10
    0100000000
    0020000000
    0003000000
    0000400000
    0000050000
    0000006000
    0000000700
    0000000080
    0000000009
    1111111111
    
    예상 출력
    10