Marica

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

요약
각 바구니의 자두 수를 바꿔 [A,B]의 모든 수가 적어도 한 바구니에 나타나게 할 때 필요한 최소 조작 횟수를 구한다.
난이도

보통10점 중 6점

유형
그리디, 정렬, 구현
정답자
아직 제출이 없습니다

문제

Marica의 할머니는 큰 과수원을 가꾸며 매일 아침 자두를 시장에 내다 판다. 오늘 아침 Marica는 할머니를 위해 자두를 바구니 nn개에 담아 두었다. 그런데 할머니는 어젯밤 늦게까지 놀다 와서 아직 일어나지 않았고, Marica는 그 사이에 조금 더 장난을 치고 싶다. 바구니에 담긴 자두를 몇 개 먹기도 하고, 과수원에서 자두를 더 따 오기도 할 생각이다.

Marica의 목표는 구간 [A,B][A, B]에 속하는 모든 자연수 kk에 대해 자두가 정확히 kk개 담긴 바구니가 적어도 하나 있게 만드는 것이다. 양쪽 끝 AA와 BB도 구간에 포함된다. 각 바구니에 지금 들어 있는 자두의 개수가 주어질 때, Marica가 목표를 이루려면 최소 몇 번의 작업이 필요한지 구하라. 작업 한 번은 다음 둘 중 하나이다.

  • 어떤 바구니에서 자두 한 개를 먹는다.
  • 과수원에서 자두 한 개를 따서 어떤 바구니에 넣는다.

입력

첫째 줄에 바구니의 개수 nn이 주어진다. (1≤n≤50001 \le n \le 5000)

둘째 줄에 두 자연수 AA와 BB가 주어진다. (1≤A≤B≤1061 \le A \le B \le 10^6, B−A+1≤nB - A + 1 \le n)

이어지는 nn개의 줄 중 ii번째 줄에는 ii번 바구니에 담긴 자두의 개수 aia_i가 주어진다. (1≤ai≤1061 \le a_i \le 10^6)

출력

첫째 줄에 필요한 작업 횟수의 최솟값을 출력한다.

예제2

  1. 예제 1

    입력
    5
    3 6
    8
    7
    1
    10
    9
    
    예상 출력
    11
    
  2. 예제 2

    입력
    7
    64 68
    62
    5
    97
    66
    74
    47
    86
    
    예상 출력
    45