На числовой прямой даны два отрезка:
тождественно истинно, то есть принимает
Введем обозначения:
Преобразовав, получаем:
Логическое ИЛИ истинно, если истинно хотя бы одно утверждение. Условию
Ответ: 40.
Приведём другое решение задачи на языке Python.
p=range(12, 63)
q=range(52, 93)
amin=100
for a1 in range(1, 100):
for a2 in range(a1, 100):
Flag=True
A=range(a1, a2)
for x in range(100):
if not( ((x in A) or (not(x in p))) or (x in q)):
Flag=False
break
if Flag:
if amin>a2-a1:
amin=a2-a1
print(amin)
Примечание.
О длине отрезка написано в примечании к задаче 11119.
Приведём решение Сергея Донец на PascalABC.NET:
begin
var P := 12..62;var Q := 52..92;
var setX:=|P.First,P.Last,Q.First,Q.Last,-999,999|
.SelectMany(x->|x-0.1,x,x+0.1|);
setX.Order.Combinations(2).Select(m->m[0]..m[1])
.Where(A->setX.All(x->
not(not(x in A)and(x in P))or(x in Q)
)).Min(A->A.Size).round.Print;
end.

