책자 나눠주기

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

요약
책자를 쪽수 기준으로 정렬해 학교마다 몫 또는 올림 몫만큼 나눠줄 때, 지정된 학교가 처음 받는 책자의 쪽수를 구합니다.
난이도

보통10점 중 4점

유형
정렬, 수학, 구현
정답자
아직 제출이 없습니다

문제

Bob은 여러 학교에 방과 후 활동 광고 책자를 나눠 주어야 한다. 책자마다 쪽수가 다르다. 각 책자의 쪽수와 학교 수가 주어지면, Bob은 각 학교가 (책자 수) / (학교 수)의 내림 정수부(LIP) 또는 올림 정수부(UIP)만큼의 책자를 받도록 나눠 준다. 즉, 책자 수를 BB, 학교 수를 SS라 할 때 각 학교는 ⌊B/S⌋\lfloor B / S \rfloor개 또는 ⌈B/S⌉\lceil B / S \rceil개를 받는다.

Bob은 다음 규칙도 지켜야 한다.

  • UIP 개수만큼 받는 학교들에게 먼저 모두 나눠 주고, 그다음에 LIP 개수만큼 받는 학교들에게 나눠 준다.
  • 학교 SiS_i가 학교 SjS_j보다 먼저 받는다면(즉 i<ji < j), SiS_i가 받은 모든 책자의 쪽수는 SjS_j가 받은 어떤 책자의 쪽수보다 크지 않다. 다시 말해, 학교들 사이에서 책자는 쪽수가 감소하지 않는(non-decreasing) 순서로 배분된다.
  • 한 학교에 주는 책자들은 Bob의 목록에 있는 것과 같은 상대 순서로 건네준다.

회사로 돌아오면 상사는 특정 학교에 나눠 준 첫 번째 책자의 쪽수를 묻는다. 학교는 Bob이 나눠 준 순서대로 00번부터 번호가 매겨진다. 그 쪽수를 구하시오.

입력

입력에는 여러 개의 데이터 집합이 있으며, 파일 끝까지 읽는다. 각 데이터 집합은 순서대로 학교 수, 상사가 지정한 학교의 번호(00번부터), 책자 수(30003000 미만), 그리고 각 책자의 쪽수(각 값은 정수 범위에 들어간다)를 준다. 숫자 사이에는 공백이 자유롭게 올 수 있다. 입력은 항상 올바르다.

출력

각 데이터 집합마다, 지정된 학교에 나눠 준 첫 번째 책자의 쪽수를 한 줄에 하나씩 출력한다.

예제1

  1. 예제 1

    입력
    3
    2
    7
    3 5 9 1 11 14 2
    
    예상 출력
    11