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

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

고양이 목에 리본 달기

면접 대비

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

요약
이웃한 고양이가 같은 리본을 달지 않도록 각 고양이의 리본을 골라 만족도 합을 최대로 만든다.
난이도

보통10점 중 4점

유형
동적 계획법
정답자
아직 제출이 없습니다

문제

외로운 윤제는 고양이를 키우기로 했다.

NN 마리의 고양이를 입양하기로 한 윤제는 고양이들에게 리본을 달아주기 위해 KK 종류의 리본을 충분히 준비했다. 즉, 각 리본의 개수는 무한하다. 각 고양이마다 리본의 종류에 따라 좋아하는 정도가 다르고, 이를 만족도로 나타낼 수 있다.

고양이들을 번호순으로 한 줄로 세우고 리본을 달아주려고 하는데, 각 고양이는 자신과 이웃한(왼쪽 혹은 오른쪽) 고양이와 같은 종류의 리본을 다는 것을 굉장히 싫어한다. 윤제는 고양이들이 싫어하는 상황을 피하면서 각 고양이의 리본에 대한 만족도의 총합을 극대화하고 싶다.

이 조건을 만족하는 만족도 합의 최댓값을 윤제에게 알려주자.

입력

첫 번째 줄에는 고양이의 수 NN과 리본 종류의 수 KK가 공백으로 구분되어 주어진다. (1≤N≤100,2≤K≤10,000)(1 \leq N \leq 100, 2 \leq K \leq 10\\,000)

다음 NN개의 줄에는 각각 KK개의 정수 a_i,1,⋯ ,a_i,ka\_{i,1}, \cdots, a\_{i,k}이 공백으로 구분되어 주어진다. (1≤a_i,j≤10,000)(1 \leq a\_{i,j} \leq 10\\,000) a_i,ja\_{i,j}는 ii번 고양이가 jj번 리본을 달았을 때의 만족도를 의미한다.

출력

고양이들이 싫어하는 상황을 피하면서 리본을 달아줄 때, 각 고양이의 만족도의 총합의 최댓값을 출력한다.

예제2

  1. 예제 1

    입력
    3 3
    10 20 30
    30 20 10
    20 30 10
    
    예상 출력
    90
    
  2. 예제 2

    입력
    3 3
    10 20 30
    10 20 40
    10 20 20
    
    예상 출력
    80