pengantar
Di bidang matematika yang dikenal sebagai topologi , ada hal-hal yang disebut aksioma pemisahan . Secara intuitif, Anda memiliki satu set X
dan koleksi himpunan bagian dari X
, yang dapat kita anggap sebagai properti. Sistem dipisahkan dengan baik, jika seseorang dapat membedakan antara semua item X
berdasarkan pada propertinya. Aksioma pemisahan memformalkan ide ini. Dalam tantangan ini, tugas Anda adalah memeriksa tiga aksioma pemisahan, yang diberikan X
dan daftar properti.
Memasukkan
Input Anda adalah bilangan bulat n ≥ 2
, dan daftar daftar T
bilangan bulat. Bilangan bulat dalam T
diambil dari X = [0, 1, ..., n-1]
. Daftar di T
mungkin kosong dan tidak disortir, tetapi tidak akan berisi duplikat.
Keluaran
Output Anda adalah satu dari empat string, ditentukan oleh tiga aksioma pemisahan, masing-masing lebih kuat dari yang terakhir. Ada aksioma lain, tetapi kami tetap menggunakannya untuk kesederhanaan.
- Misalkan untuk semua yang berbeda
x
dany
dalamX
, ada daftarT
berisi persis salah satunya. KemudianX
danT
memuaskan aksioma T0 . - Misalkan untuk semua yang berbeda
x
dany
dalamX
, ada dua daftarT
, yang satu berisix
tetapi tidaky
, dan yang lain berisiy
tetapi tidakx
. KemudianX
danT
memuaskan aksioma T1 . - Misalkan kedua daftar di atas juga tidak mengandung elemen umum. Kemudian
X
danT
memuaskan aksioma T2 .
Output Anda adalah salah satu dari T2
, T1
, T0
atau TS
, tergantung pada kondisi di atas memegang ( TS
berarti tidak satupun dari mereka lakukan). Perhatikan bahwa T2 lebih kuat dari T1, yang lebih kuat dari T0, dan Anda harus selalu mengeluarkan aksioma sekuat mungkin.
Aturan dan penilaian
Anda dapat menulis program atau fungsi lengkap. Hitungan byte terendah menang, dan celah standar tidak diizinkan.
Uji kasus
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
n
berlebihan? Di sisa tantangan, saya tidak melihatnya digunakan di luar mendefinisikan elemen apa yang bisa masukT
, jadi apakah itu hanya jalan pintas yang disediakan untukT.Maximum()
?0 []
harus memberiT2
.Jawaban:
Haskell,
317209174168 bytesFungsi f melakukan pekerjaan.
tes:
keluaran:
sumber
t
fungsi sebagai input adalah trik cerdas!f
dengan nama operator, dan gantip(x%y)(x%y)
denganp(x%y)$x%y
. dan omong-omong, kerja bagus!