만드는 중입니다

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

그룹 만들기

시간 제한5초메모리 제한1024 MB

요약
1번 학생이 줄에서 설 위치와 n의 약수 k(1보다 큰 수)를 고르고, 순환 배정한 그룹 합의 최대와 최소 비율을 가장 작게 만드는 문제입니다.
난이도

보통10점 중 5점

유형
배열, 누적 합, 수학
정답자
아직 제출이 없습니다

문제

nn명의 학생에게 11번부터 nn번까지 번호가 붙어 있고, 곧 열릴 해커톤을 위해 그룹을 만들어야 한다. 당신은 캡틴인 11번 학생이며, 학생 ii의 실력 수준은 aia_i이다.

학생 22번부터 nn번까지는 왼쪽에서 오른쪽으로 순서대로 한 줄로 서 있다. 당신은 두 학생 사이, 학생 22번의 왼쪽, 또는 학생 nn번의 오른쪽에 설 수 있다. 나머지 n−1n - 1명의 순서는 바뀌지 않는다.

또한 그룹 수 kk를 고를 수 있다. 여기서 k>1k > 1이고 kk는 nn의 약수이다. 그룹은 11번부터 kk번까지 번호가 붙는다. 위치와 kk를 정하면 학생들은 다음과 같이 나뉜다.

왼쪽에서 첫 번째 학생은 11번 그룹, 두 번째 학생은 22번 그룹에 들어가고, 이렇게 kk번째 학생까지 kk번 그룹에 들어간다. 이어서 (k+1)(k+1)번째 학생은 다시 11번 그룹, (k+2)(k+2)번째 학생은 22번 그룹에 들어가며, 이 규칙이 nn번째 학생까지 반복된다.

형식적으로 쓰면, 각 jj (1≤j≤k1 \le j \le k)와 각 ii (0≤i<n/k0 \le i < n/k)에 대해 왼쪽에서 (i×k+j)(i \times k + j)번째 학생은 jj번 그룹에 속한다. 모든 학생은 정확히 한 그룹에 속하고, 모든 그룹의 인원은 같다.

그룹의 실력 수준은 그 그룹에 속한 학생들의 실력 수준의 합이다. 위치와 kk를 적절히 골라 xmax⁡/xmin⁡x_{\max}/x_{\min}을 최소로 만들어라. 여기서 xmax⁡x_{\max}는 실력 수준이 가장 높은 그룹의 값, xmin⁡x_{\min}은 가장 낮은 그룹의 값이다.

예제1

  1. 예제 1

    입력
    2
    4 1
    2 1 2
    3 10
    4 3
    
    예상 출력
    1 1
    10 3