만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

Lower Algorithmics

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

요약
집합 A의 원소를 l개에서 r개까지 골라 더한 값으로 나타낼 수 있는 서로 다른 양의 정수의 개수를 구합니다.
난이도

보통10점 중 7점

유형
동적 계획법, 비트 연산
정답자
아직 제출이 없습니다

문제

1부터 1000까지의 정수로 이루어진 집합 AA가 주어진다. AA의 원소 여러 개를 더해서 나타낼 수 있는 양의 정수 중, 더한 원소의 개수가 ℓ\ell 이상 rr 이하인 것의 개수를 구하라. 같은 원소를 여러 번 더하는 것은 허용된다. 같은 정수를 여러 방법으로 나타낼 수 있더라도 한 번만 센다.

입력

첫 줄에 공백으로 구분된 정수 세 개 nn, ℓ\ell, rr이 주어진다. nn은 AA의 원소 개수(1≤n≤10001 \leq n \leq 1000)이고, ℓ\ell과 rr은 더하는 원소 개수의 하한과 상한(1≤ℓ≤r≤20001 \leq \ell \leq r \leq 2000)이다. 둘째 줄에는 nn개의 정수 a_1,a_2,…,a_na\_1, a\_2, \ldots, a\_n(1≤a_1<a_2<…<a_n≤10001 \leq a\_1 < a\_2 < \ldots < a\_n \leq 1000)이 오름차순으로 주어진다.

출력

AA의 원소를 더해서 나타낼 수 있는 정수 중, 더한 원소의 개수가 ℓ\ell 이상 rr 이하인 것의 개수를 출력하라.

예제3

  1. 예제 1

    입력
    2 1 2
    1 2
    
    예상 출력
    4
    
  2. 예제 2

    입력
    3 1 3
    1 3 10
    
    예상 출력
    18
    
  3. 예제 3

    입력
    6 3 5
    1 2 3 4 5 6
    
    예상 출력
    28