해결한 사람
0
명
정답률
0.00
%
시간 제한
2000
ms
메모리 제한
489
MB
Vladimir는 사무실의 칸막이를 현대화하고 싶어 한다. 사무실을 더 편안하게 만들기 위해 칸막이 하나를 철거하고 대나무 여러 그루를 한 줄로 심기로 했다. 그는 한 줄에 n그루의 대나무가 있고, 왼쪽에서 i-th번째 대나무의 높이가 ai미터이면 좋겠다고 생각한다.
Vladimir는 방금 n그루의 대나무를 한 줄로 심었다. 각 대나무의 현재 높이는 0미터이지만, 매일 1미터씩 자란다. 칸막이를 보기 좋게 만들기 위해 Vladimir는 각 대나무를 원하는 높이에서 한 번 자를 수 있으며(대나무의 높이보다 높지 않은 위치에서), 그러면 그 대나무는 성장을 멈춘다.
Vladimir는 d일마다(즉, 심은 뒤 d일 후, 그다음에는 2d일 후, 이런 식으로) 대나무를 확인하고, 필요한 높이에 도달한 대나무를 자르려고 한다. Vladimir는 잘라 낼 대나무 부분의 전체 길이가 k미터를 넘지 않기를 원한다.
잘라 내는 대나무의 길이가 k미터를 넘지 않으면서 원하는 바를 이룰 수 있도록 Vladimir가 선택할 수 있는 d의 최댓값은 얼마인가?
첫 번째 줄에 두 정수 n와 k (1 ≤ n ≤ 100, 1 ≤ k ≤ 1011)가 주어진다. 이는 각각 대나무의 수와 잘라 낸 부분의 전체 길이의 최댓값을 미터 단위로 나타낸다.
두 번째 줄에 n개의 정수 a1, a2, ..., an (1 ≤ ai ≤ 109)가 주어진다. 이는 대나무에 필요한 높이를 미터 단위로 나타낸다.
Vladimir가 목표를 달성할 수 있게 하는 d의 최댓값을 나타내는 정수 하나를 출력한다.
3 40
10 30 50
32
3 4
1 3 5
3
첫 번째 예제에서 Vladimir는 3일마다 대나무를 확인할 수 있다. 그러면 3일 후에 첫 번째와 두 번째 대나무를 자르고, 6일 후에 세 번째 대나무를 자른다. 잘라 낸 부분의 전체 길이는 2 + 0 + 1 = 3미터이다.