แรงบันดาลใจ (ที่มีคำอธิบายที่ถูกขโมย) จากนี้
พื้นหลัง
สมมติว่าคุณมีสองรายการA = [a_1, a_2, ..., a_n]
และB = [b_1, b_2, ..., b_n]
จำนวนเต็ม เรากล่าวA
คืออาจ-หารโดยB
หากมีการเปลี่ยนแปลงของB
ที่ทำให้a_i
หารด้วยทั้งหมดb_i
i
ปัญหาคือ: มันเป็นไปได้ที่จะเรียงลำดับใหม่ (เช่นเรียงสับเปลี่ยน) B
เพื่อให้a_i
หารด้วยb_i
ทั้งหมดi
หรือไม่? ตัวอย่างเช่นถ้าคุณมี
A = [6, 12, 8]
B = [3, 4, 6]
แล้วคำตอบจะเป็นTrue
เช่นB
สามารถที่จะจัดลำดับใหม่B = [3, 6, 4]
และจากนั้นเราจะมีที่a_1 / b_1 = 2
, a_2 / b_2 = 2
และa_3 / b_3 = 2
ซึ่งทั้งหมดเป็นจำนวนเต็มดังนั้นอาจเป็น-หารด้วยA
B
เป็นตัวอย่างที่ควรส่งออกFalse
เราอาจมี:
A = [10, 12, 6, 5, 21, 25]
B = [2, 7, 5, 3, 12, 3]
สาเหตุที่เป็นเช่นนี้คือFalse
เราไม่สามารถเรียงลำดับใหม่ได้B
ในขณะที่ 25 และ 5 อยู่A
แต่ตัวหารเดียวในB
จะเป็น 5 ดังนั้นจะเหลือหนึ่ง
งานของคุณ
เห็นได้ชัดว่างานของคุณคือการระบุว่ามีสองรายการ คุณสามารถรับอินพุตในลักษณะที่ยอมรับเช่นเดียวกับเอาต์พุต
รายการที่ซ้ำกันในรายการเป็นไปได้และข้อ จำกัด ด้านขนาดของจำนวนเต็มคือภาษาของคุณ จำนวนเต็มทั้งหมดในรายการทั้งสองจะมีขนาดใหญ่กว่า 0 และรายการทั้งสองจะมีขนาดเท่ากัน
เช่นเดียวกับปัญหาการตัดสินใจทั้งหมดค่าผลลัพธ์จะต้องเป็น 2 ค่าที่แตกต่างซึ่งแสดงถึงความจริงและเท็จ
นี่คือรหัสกอล์ฟที่สั้นที่สุดที่จะชนะ!
กรณีทดสอบ
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