식당
시간 제한1초메모리 제한128 MB
N마리의 소가 좋아하는 음식이 순서대로 주어질 때, 연속한 구간으로 나누어 각 구간의 서로 다른 음식 가짓수의 제곱의 합을 최소로 만든다.
문제
농부 존의 식당은 소 마리에게 종류의 음식을 제공한다.
각 소 는 자신이 선호하는 음식 를 하나 가지고 있으며, 농부 존은 다음 규칙으로 음식을 나누어 준다.
- 식당에 들어오는 소들을 들어온 순서대로 연속한 그룹으로 나눈다. 예를 들어 처럼 맨 앞에서부터 끊어서 묶는다.
- 한 그룹에 음식을 제공하는 비용은 (그 그룹에 속한 소들이 선호하는 음식의 서로 다른 종류의 수) 이다. 즉 음식을 수로 보면, 그룹 안에 등장하는 서로 다른 수의 개수를 제곱한 값이다.
모든 소에게 음식을 제공하는 데 드는 전체 비용의 최솟값을 구하여라.
입력
첫째 줄에 두 정수 과 이 공백으로 구분되어 주어진다. ()
이어지는 개의 줄에 각 소가 선호하는 음식 가 소가 들어온 순서대로 한 줄에 하나씩 주어진다. ()
출력
모든 소에게 음식을 제공하는 최소 비용을 한 줄에 출력한다.
힌트
예를 들어 예제 입력에서 소들을 (들어온 순서대로) 과 같이 묶으면, 각 그룹의 비용을 더하여 이 된다.