자바 자격 인증 시험

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

요약
카테고리별 반올림된 정답률과 전체 문제/정답 수가 주어질 때, 이를 만족하는 n_i와 w_i를 찾아 최대값과 최소값의 차를 최소화하는 문제입니다.
난이도

보통10점 중 6점

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

문제

방금 문항이 nn개인 자바 자격 인증 시험을 마쳤습니다. 시험이 끝나면 성적표를 받는데, 예를 들어 87문항 중 78문항을 맞혔다면 성적표는 다음과 같을 수 있습니다.

분류정답률
기본 개념100%
선언100%
표현식83%
클래스와 인터페이스92%
멀티스레딩75%
컬렉션93%

문항은 mm개의 분류로 나뉩니다(위 예에서는 m=6m = 6). 분류 ii에는 nin_i개의 문항이 있으며 1≤ni≤n1 \le n_i \le n이고 ∑i=1mni=n\sum_{i=1}^{m} n_i = n입니다. 전체 nn문항 중 kk문항을 맞혔으므로(위 예에서는 k=78k = 78, n=87n = 87) 틀린 문항의 총 개수는 w=n−kw = n - k입니다(위 예에서는 w=9w = 9).

분류 ii에서 틀린 문항 수를 wiw_i(0≤wi≤ni0 \le w_i \le n_i)라 하면 ∑i=1mwi=w\sum_{i=1}^{m} w_i = w입니다. 성적표에는 분류마다 정답률이 표시되는데, 이는 100(ni−wi)/ni100 (n_i - w_i) / n_i를 가장 가까운 정수로 반올림한 값입니다. 단, 소수 부분이 정확히 0.50.5인 값은 가장 가까운 짝수로 반올림합니다.

wiw_i와 nin_i가 성적표만으로 유일하게 정해지지는 않습니다. 문항이 분류에 최대한 고르게 나누어져 있다고 가정하고, 가장 큰 nin_i와 가장 작은 nin_i의 차이를 최소화하는 유효한 wiw_i, nin_i 배정만을 고려합니다.

입력

첫 번째 줄에 세 정수 kk, nn, mm이 주어집니다. kk는 맞힌 문항 수(0≤k≤n0 \le k \le n), nn은 전체 문항 수(1≤n≤1001 \le n \le 100), mm은 분류의 개수(1≤m≤101 \le m \le 10)입니다. 이어지는 mm개의 줄에는 각 분류의 반올림된 정답률이 00 이상 100100 이하의 정수 하나로 한 줄에 하나씩 주어집니다. 입력은 항상 유효한 wiw_i, nin_i 배정이 적어도 하나 존재하도록 주어집니다.

출력

유효한 wiw_i, nin_i 배정이 항상 유일하지는 않으므로, 유일하게 정해지는 값을 출력합니다. 1≤ni1 \le n_i, 0≤wi≤ni0 \le w_i \le n_i, ∑i=1mni=n\sum_{i=1}^{m} n_i = n, ∑i=1mwi=n−k\sum_{i=1}^{m} w_i = n - k를 만족하고 각 분류의 반올림된 정답률을 그대로 재현하는 모든 배정에 대하여, max⁡ini−min⁡ini\max_i n_i - \min_i n_i의 최솟값을 정수 하나로 출력합니다.

예제4

  1. 예제 1

    입력
    78 87 6
    100
    100
    83
    92
    75
    93
    
    예상 출력
    5
    
  2. 예제 2

    입력
    8 10 1
    80
    
    예상 출력
    0
    
  3. 예제 3

    입력
    50 50 5
    100
    100
    100
    100
    100
    
    예상 출력
    0
    
  4. 예제 4

    입력
    14 20 4
    83
    67
    75
    50
    
    예상 출력
    2