문제
학원에 있는 C 언어 교재들은 많은 아이들이 돌려 쓰고 있다.
따라서 몇 년이 지난 후 교재들은 상당히 훼손되고 말았다.
원래 한 교재는 총 N 페이지였고, ( 1 페이지 ~ N 페이지 ) 까지 있었다.
그 중 M 개의 페이지들만이 찢기지 않고 남아 있는 것이다. 같은 번호의 페이지가 여러 개 남아 있을 수 있다.
우리는 찢겨나간 페이지들을 다시 인쇄해서, 1 ~ N 페이지들을 적어도 한 장씩은 확보하려고 한다.
페이지를 연속해서 P 장 인쇄하면, 그 비용은 ( 7 + 3 * P ) 원이다.
예를 들어, 11 ~ 15 페이지까지 5장을 연속해서 인쇄하면 7 + 3 * 5 = 22 원이 필요하다.
우리는 찢겨나간 페이지들을 복구할 최소 인쇄 비용을 출력하려고 한다.
비용을 아끼기 위해서라면, 찢겨 나가지 않은 페이지를 또 인쇄해도 된다.
이 때, 최소 비용을 출력하자.
입력
첫 줄에 N, M 이 입력된다. ( 1 ≤ N, M ≤ 100 )
두 번째 줄에, 남아있는 페이지 번호들을 의미하는 M 개의 정수들이 입력된다. ( 1 ≤ 페이지 번호 ≤ N , 같은 페이지 번호가 여러 번 등장할 수 있음 )
출력
1페이지 ~ N페이지들을 적어도 한 장씩은 확보할 최소 인쇄 비용을 출력하자.
부분문제
| 번호 | 점수 | 조건 |
|---|---|---|
| #1 | 20점 | |
| #2 | 80점 | |
예제
11 12
10 3 7 2 3 8 6 2 7 8 10 3
38
찢겨 나간 페이지 번호는 1, 4, 5, 9, 11 이다.
[ 1 ] [ 4 ~ 5 ] [ 9 ] [ 11 ] 이렇게 인쇄하면 총 비용은 10 + 13 + 10 + 10 = 43 원이지만,
[ 1 ~ 5 ] [ 9 ~ 11 ] 이렇게 인쇄하면 총 비용은 22 + 16 = 38 원이다.
38원보다 싸게 인쇄할 수는 없다.