Саша живёт на улице, вдоль которой расположены N домов. Так случилось, что его дом — единственный дом без магазина. В остальных домах есть ровно один магазин ровно одного из K типов. Саша хочет что-то купить в магазине каждого типа, поэтому он ищет маршрут по улице, который начнётся и закончится у его дома, а по пути пройдёт через все K типов магазинов хотя бы по разу.
Маршрут должен представлять из себя такую последовательность домов на Сашиной улице, что любые два соседних пункта маршрута являются соседними домами на улице. Длиной такого маршрута будем называть количество перемещений между соседними домами.
Найдите наименьшую возможную длину такого маршрута
n=5;
Var
ar:array[1..n] of integer;
ar2:array[1..n] of integer;
i,k:integer;
function prost(a:integer):boolean;
var i:integer;
b:boolean;
begin
b:=true;
for i:=2 to a div 2 do
if a mod i=0 then
begin;
b:=false;
break;
end;
if a=1 then b:=false;
prost:=b;
end;
begin;
randomize;
k:=0;
for i:=1 to n do
begin;
ar[i]:=random(101);
write(ar[i]:4);
end;
writeln;
for i:=1 to n do
if prost(ar[i]) then
begin;
inc(k);
ar2[k]:=ar[i];
write(ar2[k]:4);
end;
end.
Формулы площадей квадрата S₁ и круга S₂ известны, что легко позволяет нам найти нужное условие.
Если нужно, чтобы случай, когда квадрат вписан в круг тоже учитывался, строгое неравенство следует заменить нестрогим.
// PascalABC.NET 3.0, сборка 1160 от 05.02.2016
begin
var s1:=ReadReal('Площадь квадрата');
var s2:=ReadReal('Площадь круга');
if pi*s1<2*s2 then Writeln('Квадрат умещается в круге')
else Writeln('Квадрат не умещается в круге')
end.
Тестовое решение:
Площадь квадрата 24.6
Площадь круга 28.4
Квадрат не умещается в круге