Ещё одна $n$-мерная шоколадка | 프로그래밍의 벗 PivotOJ
PivotOJ

Ещё одна $n$-мерная шоколадка

시간 제한: 2000ms메모리 제한: 1024MB출처: MOOI 2022-23 finalBOJ 30632
이 문제는 본문 이미지 일부가 표시되지 않습니다. 텍스트만으로 풀이가 어려울 수 있습니다.

문제

Мама купила мальчику Васе nn-мерную шоколадку, представляющую собой nn-мерный куб, у которого длина каждой стороны равна 11. У шоколадки намечено разделение на дольки. По ii-му измерению ее можно разделить гиперплоскостями на aia_i равных частей. Таким образом, шоколадка делится суммарно на a1a2a3ana_1 \cdot a_2 \cdot a_3 \cdot \ldots \cdot a_n долек, у каждой дольки длина по ii-му измерению равна 1ai\frac{1}{a_i}, соответственно объём каждой дольки равен 1a1a2an\frac{1}{a_1 a_2 \cdots a_n}.

Вася с друзьями хочет разрезать шоколадку, чтобы получилось хотя бы kk кусочков, при этом Вася хочет максимизировать объем наименьшего из них. Резать шоколадку можно только по местам соединения долек, причём каждый разрез должен проходить через всю шоколадку вдоль некоторой гиперплоскости, участвующей в образовании долек. Только сделав все разрезы, Вася разбирает шоколадку на кусочки.

Более формально, Вася хочет выбрать числа b1,b2,,bnb_1, b_2, \dots, b_n (1biai1 \le b_i \le a_i) --- количество частей на которые Вася разрежет шоколадку вдоль каждого измерения. Должно выполняться условие b1b2bnkb_1 \cdot b_2 \cdot \ldots \cdot b_n \ge k, чтобы получить не менее kk кусочков после всех разрезаний. Можно заметить, что при оптимальном разрезании с такими параметрами, минимальный кусочек будет содержать a1b1anbn\lfloor \frac{a_1}{b_1} \rfloor \dotsm \lfloor \frac{a_n}{b_n} \rfloor долек, а его объём будет равен a1b1anbn1a1a2an\lfloor \frac{a_1}{b_1} \rfloor \dotsm \lfloor \frac{a_n}{b_n} \rfloor \cdot \frac{1}{a_1 a_2 \cdots a_n}.

Вася хочет получить максимальное возможное значение объема минимального кусочка, умноженного на kk, то есть он хочет максимизировать число a1b1anbn1a1a2ank\lfloor \frac{a_1}{b_1} \rfloor \dotsm \lfloor \frac{a_n}{b_n} \rfloor \cdot \frac{1}{a_1 a_2 \cdots a_n} \cdot k. Помогите ему в этом.

입력

В первой строке даны два целых числа nn и kk (1n100(1 \le n \le 100, 1k107)1 \le k \le 10^7) --- размерность шоколадки, и на сколько частей её нужно поделить.

Во второй строке даны nn целых чисел a1, a2, , ana_1,\ a_2,\ \dots,\ a_n (1ai107)(1 \le a_i \le 10^7) --- количество кусочков, на которое размечена шоколадка вдоль каждого из измерений.

출력

Выведите одно число --- максимальный возможный объём наименьшего из полученных кусочков, умноженный на kk, с абсолютной или относительной погрешностью не более 10910^{-9}.

Если при заданных ограничениях разрезать шоколадку хотя бы на kk кусочков невозможно, выведите 00.

힌트

В первом примере одномерную шоколадку можно разделить так:

[이미지 1]

Тогда ответ будет 252=0.8\frac{2}{5} \cdot 2 = 0.8

Во втором примере шоколадку можно разрезать следующим образом:

[이미지 2]

Тогда ответ будет 253106=0.72\frac{2}{5} \cdot \frac{3}{10} \cdot 6 = 0.72

В третьем примере шоколадку можно разрезать следующим образом:

[이미지 3]

Тогда ответ будет 24147=0.875\frac{2}{4} \cdot \frac{1}{4} \cdot 7 = 0.875

예제

예제 1

입력
1 2
5
출력
0.8

예제 2

입력
2 6
5 10
출력
0.72

예제 3

입력
2 7
4 4
출력
0.875

예제 4

입력
2 3
4 5
출력
0.75

예제 5

입력
4 444
57 179 239 2
출력
0.97557326850704739751

예제 6

입력
2 5
2 2
출력
0
코드를 제출하려면 로그인하세요.