만드는 중입니다

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

장학금 표 만들기

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

요약
주어진 학생 CGPA를 너비가 같은 구간으로 나누고 등차수열 장학률로 예산 P를 정확히 쓰는 표 개수를 셉니다.
난이도

보통10점 중 7점

유형
완전 탐색, 수학, 누적 합
정답자
아직 제출이 없습니다

문제

어떤 대학은 학생의 누적 평점(CGPA)에 따라 장학금을 준다. 학기가 시작되면 평점 구간별 장학금 비율을 표로 만들어 게시판에 붙인다. 예를 들면 다음 두 표와 같다.

평점 구간장학금 비율
4.00-4.0050%
3.90-3.9940%
3.80-3.8930%
3.70-3.7920%
3.60-3.6910%
평점 구간장학금 비율
3.91-4.0080%
3.71-3.9050%
3.51-3.7020%

첫 번째 표는 평점이 3.60 이상 3.69 이하인 학생이 등록금의 10%를 장학금으로 받는다는 뜻이다. 같은 방식으로 평점이 3.90에서 3.99 사이인 학생은 40%를 받는다. 이런 표를 만드는 규칙은 다음과 같다.

  1. 한 평점 구간에 속한 학생은 모두 같은 비율의 장학금을 받는다.
  2. 모든 구간의 폭은 같아야 한다. 가장 높은 구간만 예외로 더 좁아도 된다. 구간은 가장 낮은 구간의 아래 끝에서 시작해 같은 폭으로 이어지고, 4.00을 포함하는 구간에서 끝난다. 마지막 구간의 위쪽은 4.00에서 잘린다.
  3. 가장 낮은 구간의 장학금 비율은 양의 정수이다. 구간이 한 단계 올라갈 때마다 비율은 정해진 양의 정수만큼 늘어난다. 첫 번째 표에서 이 증가량은 10%, 두 번째 표에서는 30%이다.
  4. 각 구간의 장학금 비율은 항상 양의 정수이고 100%를 넘을 수 없다.
  5. 학생 한 명에게 1%의 장학금을 주는 데 드는 금액을 1단위라고 한다. 두 학생에게 50%씩 주려면 50×2=10050 \times 2 = 100단위가 든다.
  6. 배정된 장학금 PP단위를 남김없이 모두 써야 한다.
  7. 장학금 구간은 2.50보다 낮은 평점에서 시작할 수 없다. 2.50-2.55는 되지만 2.45-2.55는 안 된다.
  8. 구간은 두 개 이상이어야 한다. 학생이 한 명도 없는 구간이 있어도 된다.

평점과 구간의 경계는 모두 0.00 이상 4.00 이하이고 0.01의 배수이다.

학생 수와 써야 할 장학금 단위 수, 학생 각각의 평점이 주어진다. PP단위를 정확히 다 쓰는 서로 다른 장학금 표가 몇 가지인지 세어라. 두 표는 평점 구간이 다르거나 어느 한 구간의 비율이 다르면 서로 다른 표이다.

입력

입력은 여러 테스트 집합으로 이루어지고, 집합은 최대 100개이다.

각 집합의 첫 줄에 학생 수 NN(1≤N≤100001 \le N \le 10000)과 써야 할 장학금 단위 수 PP(1≤P≤10000001 \le P \le 1000000)가 공백을 사이에 두고 주어진다. 이어지는 NN개 줄에는 학생 한 명의 평점이 한 줄에 하나씩 소수점 아래 두 자리로 주어진다. 평점은 0.00 이상 4.00 이하이다.

입력의 마지막 줄에는 0이 두 개 주어지며, 이 줄은 처리하지 않는다. 모든 집합에는 PP단위를 정확히 쓰는 표가 적어도 하나 있다.

출력

각 테스트 집합마다 PP단위를 남김없이 쓰는 서로 다른 장학금 표의 개수 DD를 한 줄에 하나씩 출력한다.

힌트

첫 번째 예제에서 가장 낮은 구간을 2.88-3.02로 잡고 같은 폭으로 4.00까지 이어가면 구간이 여덟 개가 된다. 최저 비율 10%에 증가량 10%를 쓰면 다음 표가 나온다.

평점 구간학생 수장학금 비율필요한 단위
3.93-4.00280%160
3.78-3.92070%0
3.63-3.77360%180
3.48-3.62050%0
3.33-3.47040%0
3.18-3.32230%60
3.03-3.17020%0
2.88-3.02110%10

합계는 410단위이다. 410단위를 정확히 쓰는 표는 이 밖에도 79553가지가 더 있다.

예제2

  1. 예제 1

    입력
    10 410
    3.29
    3.96
    2.61
    2.82
    3.93
    3.68
    3.70
    2.91
    3.28
    3.68
    0 0
    
    예상 출력
    79554
    
  2. 예제 2

    입력
    3 60
    2.50
    3.00
    4.00
    5 250
    2.51
    2.75
    3.33
    3.88
    4.00
    2 7
    2.60
    4.00
    0 0
    
    예상 출력
    324192
    122412
    39570