Terinspirasi (dengan penjelasan dicuri dari) ini
Latar Belakang
Katakanlah Anda memiliki dua daftar A = [a_1, a_2, ..., a_n]dan B = [b_1, b_2, ..., b_n]bilangan bulat. Kita mengatakan Aadalah berpotensi-habis dibagi oleh Bjika ada permutasi dari Byang membuat a_idibagi oleh b_isemua i. Masalahnya kemudian: apakah mungkin untuk memesan ulang (yaitu permutasi) Bsehingga a_idapat habis b_ibagi semua orang i? Misalnya, jika sudah
A = [6, 12, 8]
B = [3, 4, 6]
Maka jawabannya akan True, karena Bdapat mengatur kembali menjadi B = [3, 6, 4]dan kemudian kita akan memiliki yang a_1 / b_1 = 2, a_2 / b_2 = 2dan a_3 / b_3 = 2, yang semuanya bilangan bulat, sehingga Aberpotensi-habis dibagi B.
Sebagai contoh yang seharusnya ditampilkan False, kita dapat memiliki:
A = [10, 12, 6, 5, 21, 25]
B = [2, 7, 5, 3, 12, 3]
Alasannya Falseadalah karena kami tidak dapat memesan ulang Bkarena 25 dan 5 ada A, tetapi satu-satunya pembagi Badalah 5, jadi orang akan ditinggalkan.
Tugas Anda
Tugas Anda, tentu saja, untuk menentukan apakah dua daftar (diberikan sebagai input) berpotensi dibagi. Anda dapat mengambil input dengan cara apa pun yang diterima, seperti halnya dengan output.
Duplikat dalam daftar adalah suatu kemungkinan, dan satu-satunya batasan ukuran pada bilangan bulat adalah bahasa Anda. Semua bilangan bulat di kedua daftar akan lebih besar dari 0, dan kedua daftar akan berukuran sama.
Seperti halnya semua masalah keputusan , nilai output harus 2 nilai berbeda yang mewakili benar dan salah.
Ini adalah kode-golf sehingga kode terpendek menang!
Uji kasus
Input, input => output
[6, 12, 8], [3, 4, 6] => True
[10, 5, 7], [1, 5, 100] => False
[14, 10053, 6, 9] [1,1,1,1] => True
[12] [7] => False
[0, 6, 19, 1, 3] [2, 3, 4, 5, 6] => undefined