Петя записал IP-адрес школьного сервера на листке бумаги и положил его в карман куртки. Петина мама случайно постирала куртку вместе с запиской. После стирки Петя обнаружил в кармане четыре обрывка с фрагментами IP-адреса. Эти фрагменты обозначены буквами А, Б, В и Г. Восстановите IP-адрес. В ответе укажите последовательность букв, обозначающих фрагменты, в порядке, соответствующем IP-адресу. (ответ должен быть в виде АБВГ)
// Внимание! Если программа не работает, обновите версию!
begin
var n:=ReadInteger('n=');
var v:=SeqRandom(n,-99,99).Select(t->0.1*t).ToArray;
v.Println;
var imin:=v.Select(t->Abs(t)).ToArray.IndexMin;
Writeln('Номер минимального по модулю элемента- ',imin+1);
var fn:=v.Select((x,i)->(x,i)).Where(t->t[0]<0).First[1];
Writeln('Сумма модулей элементов после первого отрицательного равна ',
v[fn+1:].Sum(t->Abs(t)));
var (a,b):=ReadReal2('Введите границы интервала значений для удаления:');
v:=v.Where(t->not t.Between(a,b)).ToArray;
var m:=n-v.Length;
if n>0 then begin
SetLength(v,n);
for var i:=v.Length to n-1 do v[i]:=0.0
end;
v.Println
end.
Пример
n= 15
-9.4 3.9 6.2 -2.5 -5.2 9 4.9 -9.5 4.4 2.4 -8.8 3.1 -7.7 5.6 8.9
Номер минимального по модулю элемента- 10
Сумма модулей элементов после первого отрицательного равна 82.1
Введите границы интервала значений для удаления: -20 2
3.9 6.2 9 4.9 4.4 2.4 3.1 5.6 8.9 0 0 0 0 0 0
Кошки 60
если в документах упоминаются только Собаки или только Кошки,
то документов было бы 50+60 = 110
Однако Собаки + Кошки = 80 ( операция | или + )
следовательно есть 110-80=30 документов в которых есть
[ Собаки & Кошки ]
Собаки 50
Лемуры 70
50+70=120
тоже самое и с Собаками и Лемурами
[ Собаки | Лемуры ] = 100
120-100=20 документов в которых есть
[ Собаки & Лемуры ]
Лемуры & (кошки | собаки) = 20
[ Лемуры & Кошки | Лемуры & Собаки ] = 20
из этого следует что
документов в которых есть [Лемуры И Кошки]
не больше 20
Кошки & (Собаки | Лемуры) =
Кошки & Собаки | Кошки & Лемуры =
30 документов | (меньше или равно 20 документов) = 30 документов.
ответ: 30 документов.