Вступление
В области математики, известной как топология , есть вещи, называемые аксиомами разделения . Интуитивно понятно, что у вас есть набор Xи набор подмножеств X, которые мы можем рассматривать как свойства. Система хорошо разделена, если можно различить все предметы Xпо их свойствам. Аксиомы разделения формализуют эту идею. В этом задании ваша задача - проверить три заданные аксиомы разделения Xи список свойств.
вход
Ваши входные данные представляют собой целое число n ≥ 2и список списков Tцелых чисел. Целые числа в Tвзяты из X = [0, 1, ..., n-1]. Списки Tмогут быть пустыми и не отсортированными, но они не будут содержать дубликатов.
Выход
Ваш вывод - одна из четырех строк, определяемых тремя аксиомами разделения, каждая из которых сильнее предыдущей. Есть и другие аксиомы, но мы придерживаемся их для простоты.
- Предположим , что для всех различны
xиyвX, существует список вTсодержащий ровно один из них. ТогдаXиTудовлетворяем аксиоме T0 . - Предположим, что для всех различных
xиyвнутриXсуществует два спискаT, один из которых содержит,xно не содержитy, а другой содержит,yно не содержитx. ТогдаXиTудовлетворяем аксиоме T1 . - Предположим, что два списка выше также не содержат общих элементов. Тогда
XиTудовлетворяем аксиоме Т2 .
Ваш выход один из T2, T1, T0или TS, в зависимости от того, какая из указанных выше условий не выполнено ( TSсредство , никто из них делать). Обратите внимание, что T2 сильнее, чем T1, который сильнее, чем T0, и вы всегда должны выводить максимально возможную аксиому.
Правила и оценки
Вы можете написать полную программу или функцию. Побеждает меньшее количество байтов, и стандартные лазейки запрещены.
Контрольные примеры
2 [] -> TS
2 [[],[1]] -> T0
2 [[0],[1]] -> T2
3 [[0],[0,1,2],[1,2]] -> TS
3 [[],[0],[0,1],[2]] -> T0
3 [[0],[0,1],[2,1],[0,1,2]] -> T0
3 [[0],[0,1],[2,1],[2,0]] -> T1
6 [[0,2,4],[0,3,5],[1,2],[3,4,5]] -> TS
6 [[0,2,4],[0,3,5],[1,2],[2,5],[3,4,5]] -> T0
6 [[0,2,4],[0,3,5],[1,2],[2,5],[3,1],[3,4,5]] -> T1
6 [[0,1],[0,2,3],[1,4],[2,4],[2,3,5],[1,3],[4,5]] -> T2
0 []должен дать T2.
nлишний? В остальной части задачи я не вижу, чтобы он использовался помимо определения того, какие элементы могут быть в немT, так что это просто предоставленный ярлыкT.Maximum()?