장학금 표 만들기

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

보통7완전 탐색수학누적 합아직 제출이 없습니다시간 제한4초메모리 제한256 MB

문제

어떤 대학은 학생의 누적 평점(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(1N100001 \le N \le 10000)과 써야 할 장학금 단위 수 PP(1P10000001 \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가지가 더 있다.