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

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

여론조사

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

요약
주어진 소수 자릿수로 반올림된 백분율들을 정확히 만들어 내는 가장 작은 응답자 수를 구한다.
난이도

보통10점 중 6점

유형
수학, 완전 탐색, 구현, 이분 탐색
정답자
아직 제출이 없습니다

문제

여론조사 결과는 흔히 다음과 같은 형태로 발표됩니다.

빨강 선호: 3.5%
초록 선호: 4.5%
노랑 선호: 22.0%
파랑 선호: 70.0%

이런 결과를 보면 실제로 몇 명에게 물었는지 궁금해집니다. 예를 들어 비율이 20%, 40%, 40%처럼 간단하다면 5명에게 물었다는 것을 알 수 있습니다(10명, 15명 등일 수도 있지만, 우리가 찾는 것은 최소 인원입니다).

각 응답자는 정확히 하나의 항목을 선택하므로, 각 항목의 응답자 수를 모두 더하면 항상 전체 인원과 같습니다. 발표된 각 백분율은 그 항목의 응답자 수를 전체 인원으로 나눈 값을 백분율로 나타난 뒤, 정해진 소수 자릿수로 반올림한 것입니다.

여러 개의 백분율 집합을 읽어, 각 집합에 대해 그 백분율을 정확히 만들어 낼 수 있는 최소 인원을 계산하는 프로그램을 작성하세요. 이 값은 항상 10 00010\,000보다 작습니다.

입력

입력은 여러 개의 백분율 집합으로 이루어지며, 각 집합은 한 줄에 주어집니다.

각 줄은 정수 nn (0≤n≤200 \le n \le 20)으로 시작하며, 이는 그 집합에 들어 있는 백분율의 개수입니다. n>0n > 0이면 이어서 nn개의 백분율이 주어집니다. 한 집합 안의 모든 백분율은 같은 소수 자릿수(00부터 55까지)로 적혀 있습니다(소수 자릿수가 00이면 소수점이 없습니다). 백분율의 합은 작은 반올림 오차를 허용하여 대략 100%100\%가 됩니다.

반올림은 버리는 첫 번째 자리의 숫자가 55 이상이면 마지막으로 남기는 자리를 올리는 방식(half up)입니다. 예를 들어 4.4724.472는 남기는 소수 자릿수에 따라 4.474.47, 4.54.5, 또는 44가 됩니다.

n=0n = 0인 줄(숫자 00 하나만 있는 줄)은 입력의 끝을 의미하며, 아무것도 출력하지 않습니다.

출력

각 데이터 집합에 대해 다음 형식으로 한 줄을 출력합니다.

Case i: X

여기서 i는 데이터 집합의 번호(11부터 시작)이고, X는 계산한 인원 수입니다. 11부터 99999999까지의 범위에 유효한 답이 없으면 숫자 대신 error를 출력합니다.

예제3

  1. 예제 1

    입력
    3 20 40 40
    3 33.3 33.3 33.3
    2 33 67
    1 100.0000
    4 3.75 4.25 22.00 70.00
    2 49 51
    2 50 51
    2 49 50
    0
    
    예상 출력
    Case 1: 5
    Case 2: 3
    Case 3: 3
    Case 4: 1
    Case 5: 400
    Case 6: 35
    Case 7: 200
    Case 8: error
    
  2. 예제 2

    입력
    1 100
    1 50
    1 100.00000
    0
    
    예상 출력
    Case 1: 1
    Case 2: error
    Case 3: 1
    
  3. 예제 3

    입력
    2 50 50
    4 25 25 25 25
    5 20 20 20 20 20
    0
    
    예상 출력
    Case 1: 2
    Case 2: 4
    Case 3: 5