고양이 목에 리본 달기
면접 대비시간 제한1초메모리 제한1024 MB
이웃한 고양이가 같은 리본을 달지 않도록 각 고양이의 리본을 골라 만족도 합을 최대로 만든다.
- 난이도
보통10점 중 4점
- 유형
- 동적 계획법
- 정답자
- 아직 제출이 없습니다
문제
외로운 윤제는 고양이를 키우기로 했다.
마리의 고양이를 입양하기로 한 윤제는 고양이들에게 리본을 달아주기 위해 종류의 리본을 충분히 준비했다. 즉, 각 리본의 개수는 무한하다. 각 고양이마다 리본의 종류에 따라 좋아하는 정도가 다르고, 이를 만족도로 나타낼 수 있다.
고양이들을 번호순으로 한 줄로 세우고 리본을 달아주려고 하는데, 각 고양이는 자신과 이웃한(왼쪽 혹은 오른쪽) 고양이와 같은 종류의 리본을 다는 것을 굉장히 싫어한다. 윤제는 고양이들이 싫어하는 상황을 피하면서 각 고양이의 리본에 대한 만족도의 총합을 극대화하고 싶다.
이 조건을 만족하는 만족도 합의 최댓값을 윤제에게 알려주자.
입력
첫 번째 줄에는 고양이의 수 과 리본 종류의 수 가 공백으로 구분되어 주어진다.
다음 개의 줄에는 각각 개의 정수 이 공백으로 구분되어 주어진다. 는 번 고양이가 번 리본을 달았을 때의 만족도를 의미한다.
출력
고양이들이 싫어하는 상황을 피하면서 리본을 달아줄 때, 각 고양이의 만족도의 총합의 최댓값을 출력한다.