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

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

노래방 2

시간 제한2초메모리 제한512 MB

요약
두 가수가 나눠 갖는 중간 음역대의 음을 적절히 배정해 노래 전체에서 마이크가 바뀌는 횟수를 최소로 만든다.
난이도

보통10점 중 6점

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

문제

영선이와 효빈이가 노래방에서 노래를 부른다.

음의 높이는 1부터 M까지이고, 1이 가장 낮은 음, M이 가장 높은 음이다. 영선이는 low 이상 M 이하인 음만 부를 수 있고, 효빈이는 1 이상 high 이하인 음만 부를 수 있다.

두 사람은 노래를 시작하기 전에 각 높이의 음을 누가 맡을지 미리 정한다. 예를 들어 영선이가 3을 맡기로 했다면 노래에 3이 나올 때마다 영선이가 그 부분을 부르고, 효빈이는 3을 절대 부를 수 없다. 한 번 정한 담당은 노래가 끝날 때까지 그대로다. low보다 낮은 음은 효빈이만, high보다 높은 음은 영선이만 부를 수 있으므로 그런 음의 담당은 이미 정해져 있다.

노래는 음 N개가 순서대로 이어진 것이다. 마이크는 하나뿐이고, 지금 나오는 음을 맡은 사람이 마이크를 들고 있어야 한다. 첫 음을 맡은 사람이 마이크를 들고 시작하며, 이웃한 두 음의 담당이 다른 지점마다 마이크를 넘겨야 한다.

담당을 어떻게 정하느냐에 따라 마이크를 넘기는 횟수가 달라진다. 마이크를 넘기는 횟수의 최솟값을 구하는 프로그램을 작성하시오.

입력

첫째 줄에 N, M, low, high가 주어진다. (1≤N≤10001 \le N \le 1000, 1≤M≤10001 \le M \le 1000, 1≤low≤M1 \le \textit{low} \le M, low≤high≤M\textit{low} \le \textit{high} \le M)

둘째 줄에 노래의 음 N개가 순서대로 주어진다. 각 음은 1 이상 M 이하인 정수이다.

출력

첫째 줄에 마이크를 넘기는 횟수의 최솟값을 출력한다.

예제4

  1. 예제 1

    입력
    6 3 2 2
    1 2 3 2 1 2
    
    예상 출력
    2
    
  2. 예제 2

    입력
    8 10 3 7
    4 4 5 5 6 5 3 6
    
    예상 출력
    0
    
  3. 예제 3

    입력
    6 6 2 5
    5 3 1 6 4 2
    
    예상 출력
    1
    
  4. 예제 4

    입력
    9 10 4 5
    1 4 3 5 2 5 7 5 9
    
    예상 출력
    3