ได้รับแรงบันดาลใจจากคำถามนี้จากเพื่อน ๆคู่แข่งของเราในการตรวจสอบรหัส
คำนิยาม
อาร์เรย์ซุปเปอร์เป็นอาร์เรย์ที่แต่ละองค์ประกอบใหม่ในอาร์เรย์มีขนาดใหญ่กว่าผลรวมขององค์ประกอบทั้งหมดก่อนหน้านี้ด้วย {2, 3, 6, 13}
เป็นอาเรย์ super เพราะ
3 > 2
6 > 3 + 2 (5)
13 > 6 + 3 + 2 (11)
{2, 3, 5, 11}
คือไม่อาร์เรย์สุดเพราะ
3 > 2
5 == 3 + 2
11 > 5 + 3 + 2
อาร์เรย์ duperเป็นอาร์เรย์ที่แต่ละองค์ประกอบใหม่ในอาร์เรย์มีขนาดใหญ่กว่าสินค้าทุกองค์ประกอบก่อนหน้านี้ด้วย {2, 3, 7, 43, 1856}
เป็นอาเรย์ super แต่ก็เป็นอาเรย์duperตั้งแต่นั้นเป็นต้นมา
3 > 2
7 > 3 * 2 (6)
43 > 7 * 3 * 2 (42)
1856 > 43 * 7 * 3 * 2 (1806)
ความท้าทาย
เขียนฟังก์ชั่นหรือโปรแกรมที่ใช้อาร์เรย์เป็นอินพุตในรูปแบบรายการภาษาดั้งเดิมของคุณและกำหนดว่าอาร์เรย์เป็นอย่างไร นอกจากนี้คุณยังสามารถเลือกป้อนความยาวของอาเรย์ (สำหรับภาษาอย่าง C / C ++) นอกจากนี้คุณยังสามารถสรุปได้ว่าทั้งหมดของตัวเลขในรายการจะเป็นจำนวนเต็มมากกว่า 0 ถ้าเป็นซุปเปอร์อาร์เรย์คุณต้องพิมพ์It's a super array!
ถ้าเป็นซุปเปอร์duperอาร์เรย์คุณต้องพิมพ์It's a super duper array!
นอกจากนี้ยังเป็นไปได้สำหรับอาร์เรย์จะเป็น duper- ไม่ใช่ซุปเปอร์ ตัวอย่างเช่น{1, 2, 3}
ในกรณีนี้คุณควรพิมพ์It's a duper array!
ถ้าอาร์เรย์ไม่ใช่ super หรือ duper คุณสามารถพิมพ์ค่าที่ผิดพลาดได้
ตามปกตินี่คือ code golf ดังนั้นจึงมีช่องโหว่มาตรฐานและคำตอบที่สั้นที่สุดในหน่วยไบต์ชนะ
{1, 2, 3}
อาร์เรย์หรือไม่
2 * 1
จะมีความเท่าเทียมกัน3
ในหัวของฉัน
super[space][space]array
ได้รับอนุญาต