PascalABC.NET 3.3.5, сборка 1659 от 09.04.2018 Внимание! Если программа не работает, обновите версию!
begin var s:=ReadlnString; var a:=s.ToWords('.').Select(t->Trim(t)).ToArray; var b:=s.ToWords(Arr('.',' ')) .GroupBy(t->t).Select(t->(t.Key,t.Count)) .Where(t->t[1]>1).Select(t->t[0]).ToArray; a.Cartesian(b,(p,q)->p.Contains(q)?p:'') .Where(t->t.Length>0).Distinct.PrintLines end.
Внимание! Если программа не работает, обновите версию!
begin
var s:=ReadlnString;
var a:=s.ToWords('.').Select(t->Trim(t)).ToArray;
var b:=s.ToWords(Arr('.',' '))
.GroupBy(t->t).Select(t->(t.Key,t.Count))
.Where(t->t[1]>1).Select(t->t[0]).ToArray;
a.Cartesian(b,(p,q)->p.Contains(q)?p:'')
.Where(t->t.Length>0).Distinct.PrintLines
end.
Примеры
Мама мыла полы. Маша ела кашу. Даша пила молоко. Таня мыла полы.
Мама мыла полы
Таня мыла полы
Мама мыла раму. Маша ела кашу. Даша пила молоко. Таня мыла полы.
Мама мыла раму
Таня мыла полы
1) Построим таблицу истинности
F = ¬B
B F
0 1
1 0
0 1
1 0
Таблица не соответствует с той, которая в условии. Значит, этот вариант нам не подходит
2) F = B. Этот вариант нам подходит, потому что значение F и B совпадают. Но проверим и остальные варианты
3) Не подходит, т.к. по условию сказано, что переменные связаны
4) Посмотрим таблицу истинности F = A∧B
A B F
0 0 0
Мы уже видим, что наши таблицы не совпадают, поэтому дальше этот вариант можно и ре рассматривать.
ответ: 2
Подробнее - на -
Объяснение: