Giới thiệu
Trong lĩnh vực toán học được gọi là cấu trúc liên kết , có những thứ gọi là tiên đề tách . Theo trực giác, bạn có một tập hợp X
và một tập hợp các tập hợp con X
mà chúng ta có thể nghĩ là thuộc tính. Hệ thống được phân tách tốt, nếu người ta có thể phân biệt giữa tất cả các mục X
dựa trên thuộc tính của chúng. Các tiên đề tách chính thức hóa ý tưởng này. Trong thử thách này, nhiệm vụ của bạn là kiểm tra ba tiên đề phân tách, được đưa ra X
và danh sách các thuộc tính.
Đầu vào
Đầu vào của bạn là một số nguyên n ≥ 2
và danh sách T
các số nguyên. Các số nguyên trong T
được rút ra từ X = [0, 1, ..., n-1]
. Các danh sách trong T
có thể trống và chưa được sắp xếp, nhưng chúng sẽ không chứa các bản sao.
Đầu ra
Đầu ra của bạn là một trong bốn chuỗi, được xác định bởi ba tiên đề tách, mỗi chuỗi mạnh hơn lần trước. Có những tiên đề khác, nhưng chúng tôi gắn bó với những điều này cho đơn giản.
- Giả sử rằng đối với tất cả các khác biệt
x
vày
trongX
, tồn tại một danh sáchT
chứa chính xác một trong số chúng. Sau đóX
vàT
thỏa mãn tiên đề T0 . - Giả sử rằng đối với tất cả các khác biệt
x
vày
trongX
, tồn tại hai danh sáchT
, một trong số đó chứax
nhưng khôngy
, và danh sách kia chứay
nhưng khôngx
. Sau đóX
vàT
thỏa mãn tiên đề T1 . - Giả sử rằng hai danh sách trên cũng không chứa các yếu tố chung. Sau đó
X
vàT
thỏa mãn tiên đề T2 .
Đầu ra của bạn là một trong những T2
, T1
, T0
hoặc TS
, tùy thuộc vào các điều kiện trên nắm giữ ( TS
có nghĩa là không ai trong số họ làm). Lưu ý rằng T2 mạnh hơn T1, mạnh hơn T0 và bạn phải luôn luôn đưa ra tiên đề mạnh nhất có thể.
Quy tắc và tính điểm
Bạn có thể viết một chương trình đầy đủ hoặc một chức năng. Số byte thấp nhất sẽ thắng và các sơ hở tiêu chuẩn không được phép.
Các trường hợp thử nghiệm
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 []
nên cho T2
.
n
thừa? Trong phần còn lại của thử thách, tôi không thấy nó được sử dụng ngoài việc xác định các yếu tố nào có thể cóT
, vậy nó chỉ là một phím tắt được cung cấp choT.Maximum()
?