สแควร์จากตัวเลขที่มีผลรวมที่ใหญ่ที่สุด


9

คุณควรเขียนโปรแกรมหรือฟังก์ชั่นที่ได้รับรายการตัวเลขเป็นอินพุตและเอาต์พุตหรือส่งกลับผลรวมที่ใหญ่ที่สุดที่ทำได้โดยใส่ตัวเลขเหล่านี้ลงในช่องสี่เหลี่ยม

ข้อมูลที่ป้อนจะประกอบด้วยตัวเลขสองหลักเสมอ ตัวอย่างการจัดเรียงกำลังสองสำหรับอินพุต9 1 2 3 4 5 6 7 7อาจเป็นได้

677
943
125

ผลรวมจะถูกคำนวณเป็นผลรวมของแถวและคอลัมน์ทั้งหมด 677 + 943 + 125 + 691 + 742 + 735 = 3913สำหรับการจัดดังกล่าวข้างต้นรวมจะ โปรดทราบว่านี่ไม่ใช่ผลรวมสูงสุดดังนั้นนี่ไม่ใช่ผลลัพธ์ที่คาดหวัง

อินพุต

  • รายการที่มีความยาวn^2( n>=1) มีตัวเลขที่ไม่ใช่ศูนย์ ( 1-9)

เอาท์พุต

  • จำนวนเต็มผลรวมที่ใหญ่ที่สุดที่ทำได้ด้วยตัวเลขอินพุตที่ใส่ในตาราง

ตัวอย่าง

input => outputรูปแบบตัวอย่างคือ

5 => 10

1 2 3 4 => 137

5 8 6 8 => 324

9 1 2 3 4 5 6 7 7 => 4588

2 4 9 7 3 4 2 1 3 => 3823

8 2 9 4 8 1 9 3 4 6 3 8 1 5 7 1 => 68423

5 4 3 6 9 2 6 8 8 1 6 8 5 2 8 4 2 4 5 7 3 7 6 6 7 => 836445

นี่คือรหัสกอล์ฟเพื่อให้รายการที่สั้นที่สุดชนะ


เพียงเพื่อตรวจสอบอีกครั้งอินพุตจะต้องมีตัวเลขคั่นด้วยช่องว่างอย่างแน่นอนหรือเป็นรูปแบบรายการที่ชัดเจนไม่เป็นไร?
Sp3000

@ Sp3000 รูปแบบรายการใด ๆ ที่เรียบง่ายไม่เป็นไรรวมถึงรูปแบบรายการภาษาที่คุณเลือก
randomra

คำตอบ:


4

Pyth, 15 ไบต์

s*VSsM^^LTUQ2SQ

สาธิต. สายรัดทดสอบ

หมายเหตุ: การป้อนข้อมูลในรูปแบบลำดับหลามใด ๆ เช่นหรือa,b,c, ล้มเหลวใน[a, b, c]a

5,8,6,8นี้จะเป็นคำอธิบายสำหรับการป้อนข้อมูลตัวอย่าง

^LTUQ: นี่คือรายการของอำนาจของ 10 Qออกไปตามความยาวของการ [1, 10, 100, 1000].

^ ... 2: แล้วเราจะคู่ของอำนาจของ [[1, 1], [1, 10], ...10

sM: จากนั้นเรารวมคู่เหล่านั้น [2, 11, 101, ...แต่ละหมายเลขแสดงค่าของตำแหน่งกริด ค่าของมุมล่างขวาคือ 2 เพราะตัวเลขที่อยู่ในตำแหน่งที่อยู่ของตัวเลขสองตัวนั้นอยู่โปรดทราบว่ามีการสร้างค่า 16 ค่าแม้ว่าเราต้องการเพียง 4 สิ่งนี้จะได้รับการจัดการในไม่ช้า

S: จัดเรียงค่าตามลำดับที่เพิ่มขึ้น [2, 11, 11, 20, 101, .... โปรดทราบว่าเฉพาะค่าที่เกี่ยวข้องกับอินพุตนี้คือ 4 รายการแรกเนื่องจากจตุรัสนี้จะไม่มีหลายร้อยหรือหลายพันแห่ง

SQ: จัดเรียงอินพุตตามลำดับจากน้อยไปหามาก [5, 6, 8, 8]

*V: Vectorized คูณสองรายการ การคูณแบบเวกเตอร์ของ Pyth จะตัดทอนอินพุตที่ยาวขึ้นดังนั้นสิ่งนี้จึงมีประสิทธิภาพ[5*2, 6*11, 8*11, 8*20]เทียบเท่ากับการเติมในกริดที่เล็กที่สุดไปหามากที่สุดล่างขวาไปซ้ายบน

s: Sum 324ผล การพิมพ์โดยปริยาย


4

CJam, 23 ไบต์

q~$_,mQ,A\f#2m*::+$.*:+

ลองมันออนไลน์ สร้างน้ำหนักสำหรับแต่ละเซลล์และกำหนดตัวเลขสูงสุดให้กับน้ำหนักสูงสุด

ทางเลือก 23:

q~$_,mQ_,A\f#*_$.+$.*:+

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.