줄
시간 제한2.5초메모리 제한256 MB
길이 N인 밧줄을 접기와 색 변경을 반복해 길이 2로 줄일 때, 마지막 밧줄에 특정 색의 끈이 남도록 하는 색마다의 최소 비용을 구한다.
문제
JOI는 줄을 가지고 노는 아기다. 길이가 인 줄이 왼쪽에서 오른쪽으로 곧게 놓여 있다. 줄은 개의 끈이 일직선으로 이어진 것이고, 각 끈의 길이와 굵기는 모두 1이다. 줄에 쓰인 색은 모두 가지이며, 왼쪽에서 번째 끈의 색은 ()이다.
JOI는 줄의 길이가 2가 될 때까지 다음 과정을 반복해서 줄을 줄인다.
- 현재 줄의 길이를 이라 하자. 정수 ()를 하나 고른다. 줄의 왼쪽 끝에서 길이 만큼 떨어진 지점이 새로운 왼쪽 끝이 되도록 줄을 접어 끈을 합친다. 정확히는 다음과 같다.
- 이면 각 ()에 대해 왼쪽에서 번째 끈을 왼쪽에서 번째 끈과 합친다. 원래 줄의 오른쪽 끝은 그대로 오른쪽 끝이 되고, 줄의 길이는 가 된다.
- 이면 각 ()에 대해 왼쪽에서 번째 끈을 왼쪽에서 번째 끈과 합친다. 원래 줄의 왼쪽 끝이 오른쪽 끝이 되고, 줄의 길이는 가 된다.
- 두 끈을 합치려면 두 끈의 색이 같아야 한다. 끈을 다른 끈과 합치기 전에 그 끈의 색을 바꿀 수 있다. 끈 하나의 색을 바꾸는 비용은 그 끈의 굵기와 같다. 색을 맞춘 두 끈은 끈 하나로 합쳐지고, 합쳐진 끈의 굵기는 두 끈의 굵기의 합이다.
JOI는 줄의 길이가 2가 될 때까지 드는 비용의 총합을 최소로 하려고 한다. 각 색마다, 길이가 2인 최종 줄에 그 색의 끈이 포함되도록 줄을 줄일 때 드는 최소 총비용을 구하고 싶다.
처음 줄의 끈 색이 주어질 때, 각 색에 대해 최종 길이 2의 줄에 그 색의 끈이 포함되도록 하는 최소 총비용을 구하는 프로그램을 작성하시오.
입력
첫째 줄에 두 정수 , 이 공백으로 구분되어 주어진다. 줄이 개의 끈으로 이루어져 있고 끈에 쓰인 색이 가지라는 뜻이다.
둘째 줄에 개의 정수 이 공백으로 구분되어 주어진다. 왼쪽에서 번째 끈의 색이 ()라는 뜻이다.
출력
개의 줄을 출력한다. 번째 줄 ()에는 길이가 2인 최종 줄에 색 인 끈이 포함되도록 줄을 줄일 때 드는 최소 총비용을 출력한다.
제한
- ()
- 인 모든 에 대해 인 정수 가 존재한다.