
- •Содержание
- •В ожидании Нового года Условие
- •Золотые яйца Условие
- •Отгадай слово Условие
- •Формат входного файла
- •Формат выходного файла
- •Ограничения
- •Примеры тестов
- •Инкубатор Бабы Яги Условие
- •Расписные салфеточки Условие
- •Сколько прошло дней? Условие
- •Арифметическая прогрессия Условие
- •Нарезка фантиков Условие
- •Шагающий циркуль Условие
- •Волшебные горшочки Бабы Яги Условие
- •Стиральный вопрос
- •Чудик в Цветландии Условие
- •Столовая Условие
- •Рейтинг студента Условие
- •Формат входного файла
- •Формат выходного файла
- •Ограничения
- •Примеры тестов
- •Лена и зеркало
- •Макет города Условие
- •Мосты-горки Условие
Шагающий циркуль Условие
Первоклассник нарисовал на бумаге две различные точки: A и B. Он воткнул ножку шагающего циркуля в точку A, другая ножка не касалась бумаги. Если он теперь воткнёт вторую ножку в произвольную точку плоскости, до которой дотягивается циркуль, а затем вытащит из бумаги первую ножку, то такое действие будет называться шагом циркуля.
Найти наименьшее количество шагов циркуля, которое нужно сделать, чтобы одна из его ножек оказалась в точке B. Раствор циркуля (т. е. длина шага) s может изменяться от s1 до s2 включительно (s1 ≤ s ≤ s2).
Формат входного файла
Первая строка содержит вещественные числа xA yA xB yB — координаты точек A и B.
Вторая строка содержит вещественные числа s1 s2.
Формат выходного файла
Выходной файл должен содержать единственное целое число — минимальное количество шагов циркуля.
Ограничения
−70 < xA, yA, xB, yB < 70
1 ≤ s1 ≤ s2 < 100
Все входные данные имеют не более двух знаков после запятой и заданы точно (не содержат ошибки округления).
Примеры тестов
-
№
Входной файл
Выходной файл
1
1 1.5 3 0.5
1.0 1.2
2
Разбор
Пусть циркуль находится в точке M. Обозначим через K(M) множество точек, до которых циркуль может шагнуть из точки M. K(M) — это кольцо — множество точек X, для которых s1 MX s2.
Обозначим через Di множество точек, до которых циркуль может дойти за i шагов. D0 включает в себя только точку A. Di + 1 равно объединению K(M) по всем M Di. Так, D1 = K(A), D2 есть круг с центром в точке A радиуса 2s2, Di (i > 1) есть круг с центром в точке A радиуса is2.
Требуется найти наименьшее i,
такое, что B Di.
Если B D1,
то i = 1. Если B D1,
то нужно решить неравенство AB is2.
Решение неравенства:
.
Минимальное i,
удовлетворяющее неравенству, есть
— частное
,
округлённое вверх. В случае, когда точка
B лежит внутри круга
с центром в точке A
радиуса s1, решив
неравенство, мы получим 1 вместо 2, поэтому
этот случай нужно рассмотреть отдельно.
program compasses;
var
xa, ya, xb, yb: real;
l1, l2: real;
d: real;
function is_whole(x: real): boolean;
begin
is_whole := abs(x-round(x)) < 1e-6;
end;
function ceil(x: real): integer;
begin
if is_whole(x) then
ceil := round(x)
else
ceil := trunc(x)+1;
end;
begin
assign(input, 'input.txt');
reset(input);
assign(output, 'output.txt');
rewrite(output);
read(xa, ya, xb, yb, l1, l2);
d := sqrt(sqr(xb-xa) + sqr(yb-ya));
if (d >= l1) and (d <= l2) then
write(1)
else if (d < l1) then
write(2)
else
write(ceil(d/l2));
close(input);
close(output);
end.
Волшебные горшочки Бабы Яги Условие
В некотором царстве, некотором государстве жила-была Баба Яга. Однажды исполнилось Бабе Яге 500 лет, и она решила отпраздновать свой юбилей и позвала гостей: Кощея Бессмертного, Кота Баюна, Лешего, Водяного, Кикимору и других.
Было у Бабы Яги N волшебных горшочков. Все горшочки абсолютно одинаковы. Каждый горшочек готовит одно из M блюд, причём каждое из M блюд может быть приготовлено с одинаковой вероятностью (все блюда равновероятны).
Баба Яга любит разнообразие блюд на праздничном столе, поэтому она хочет, чтобы во всех горшочках блюда были разные. С какой вероятностью это случится?
Формат входного файла
Входной файл содержит целые числа N M.
Формат выходного файла
Выходной файл должен содержать вещественное число — вероятность того, что во всех горшочках блюда будут разные.
Ответ необходимо вывести с точностью не менее семи знаков после запятой.
Ограничения
1 ≤ N ≤ 9
1 ≤ M ≤ 9
Примеры тестов
-
№
Входной файл
Выходной файл
1
2 2
0.5
2
2 3
0.6666666667
3
1 4
1
Разбор
Вероятность того, что во всех горшочках блюда разные, равна отношению числа исходов, при которых во всех горшочках блюда разные, к общему числу исходов. В данном случае исход (элементарный исход) — это набор из N блюд (набор чисел a1, a2, ..., aN, где ai от 1 до M).
Общее число исходов равно MN, так каждое число может принимать любое из M значений, а всего чисел N штук.
Если M < N, то будут совпадения блюд (по принципу Дирихле). Значит, вероятность того, что все блюда разные, равна 0.
Рассмотрим случай M = N. Все блюда (все числа ai) разные тогда и только тогда, когда a1, a2, ..., aN — перестановка чисел от 1 до N. Из комбинаторики известно, что всего таких перестановок N! = 1·2·...·N. Значит, число исходов, при которых все блюда разные, равно N!.
Рассмотрим случай M > N. Число исходов, при которых все блюда разные (все числа a1, a2, ..., aN разные), равно числу способов выбрать N различных чисел из M чисел (от 1 до M), причём важно, в каком порядке числа расположены. Это число способов равно числу размещений из M по N —
.
Таким образом, при M N вероятность того, что все блюда разные, равна
.
program magical_pots;
var
N, M: integer;
p: extended;
i: integer;
begin
assign(input, 'input.txt');
reset(input);
assign(output, 'output.txt');
rewrite(output);
read(N, M);
if (M < N) then
write(0)
else
begin
p := 1;
for i := M downto M-N+1 do
p := p*i;
for i := 1 to N do
p := p/M;
write(p:0:10);
end;
close(input);
close(output);
end.