ลองนึกภาพสี่เหลี่ยมจัตุรัสที่วาดบนระนาบสี่เหลี่ยมแต่ละอันมีจุดยอดที่พิกัดจำนวนเต็มและด้านข้างขนานกับแกน
รูปสี่เหลี่ยมผืนผ้าแบ่งส่วนของเครื่องบินออกเป็นส่วน ๆ ของส่วนที่แยกออกซึ่งมีสีแดงและน้ำเงินด้านล่าง:
เป้าหมายของคุณคือการหาจำนวนของพื้นที่ดังกล่าวซึ่งเป็นสี่เหลี่ยมที่สมบูรณ์แบบ ในตัวอย่างด้านบนมีสาม:
โปรดทราบว่าสี่เหลี่ยมขนาดใหญ่ที่อยู่ตรงกลางจะไม่ถูกนับเนื่องจากไม่ใช่พื้นที่เดียว แต่ถูกสร้างขึ้นจากพื้นที่ที่มีขนาดเล็กกว่าหลายจุด
อินพุต
คุณสามารถเขียนฟังก์ชั่นหรือโปรแกรมเต็มรูปแบบสำหรับความท้าทายนี้
อินพุตจะเป็น4n
จำนวนเต็มที่ไม่ใช่ค่าลบซึ่งกำหนดn
สี่เหลี่ยมในระนาบ แต่ละรูปสี่เหลี่ยมผืนผ้าเป็นตัวแทนจากสองจุดตรงข้ามเช่น4 9 7 8
แสดงให้เห็นถึงรูปสี่เหลี่ยมผืนผ้าที่มีจุดตรงข้ามและ(4, 9)
(7, 8)
โปรดทราบว่าสี่เหลี่ยมผืนผ้านี้อาจจะมีการแสดงเป็นหรือ7 8 4 9
4 8 7 9
รูปแบบการป้อนข้อมูลที่แน่นอนมีความยืดหยุ่น (เช่นสตริงคั่นด้วยช่องว่าง, สตริงคั่นด้วยเครื่องหมายจุลภาค, อาร์เรย์จำนวนเต็มเดียว, รายการพิกัด tuples และอื่น ๆ ) แต่โปรดสมเหตุสมผลและยกตัวอย่างวิธีการเรียกใช้โค้ดของคุณในโพสต์ของคุณ คุณไม่สามารถจัดลำดับอินพุตใหม่ได้
เพื่อความง่ายคุณสามารถสรุปได้ว่าจะไม่มีการซ้อนสองขอบซึ่งรวมถึงการซ้อนทับที่จุดสุดยอด โดยเฉพาะอย่างยิ่งนี่ก็หมายความว่าไม่มีรูปสี่เหลี่ยมผืนผ้าสองรูปใดที่จะสัมผัสจากมุมหนึ่งไปยังอีกมุมหนึ่งและจากมุมหนึ่งไปยังอีกมุมหนึ่ง
เอาท์พุต
โปรแกรมของคุณควรพิมพ์หรือคืนค่าจำนวนเต็มเดียวซึ่งเป็นจำนวนของพื้นที่สี่เหลี่ยมจัตุรัส
เกณฑ์การให้คะแนน
นี่คือโค้ดกอล์ฟดังนั้นโค้ดในจำนวนไบต์ที่น้อยที่สุดจะเป็นผู้ชนะ
กรณีทดสอบ
การป้อนข้อมูล:
0 0 5 5
6 8 10 4
14 16 11 13
19 1 18 2
เอาท์พุท:
4
นี่เป็นเพียงสี่สี่เหลี่ยมแยกกัน
การป้อนข้อมูล:
2 1 3 11
1 10 5 19
6 10 11 3
8 8 15 15
13 13 9 5
15 1 19 7
17 19 19 17
เอาท์พุท:
3
นี่เป็นกรณีทดสอบตัวอย่างที่จุดเริ่มต้นของการโพสต์
การป้อนข้อมูล:
0 9 15 12
6 3 18 15
9 6 12 20
13 4 17 8
เอาท์พุท:
7
การป้อนข้อมูล:
5 9 11 10
5 12 11 13
6 8 7 14
9 8 10 14
13 8 14 9
13 10 14 14
เอาท์พุท:
14
การป้อนข้อมูล:
0 99999 100000 0
เอาท์พุท:
0
นี่เป็นรูปสี่เหลี่ยมผืนผ้าขนาดใหญ่เพียงอันเดียว
การป้อนข้อมูล:
0 99999 100000 0
2 1 142857 285714
เอาท์พุท:
1
สี่เหลี่ยมขนาดใหญ่สองอันซ้อนทับกัน