คูณเมทริกซ์ 3 (matmul3)

From Ta Wiki
Jump to navigation Jump to search

โจทย์

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

โดยขนาดของเมทริกซ์กำหนดดังนี้ A(i) คือเมทริกซ์ลำดับที่ i จะมีขนาด Dimension(i)*Dimension(i+1) โดย 0<=i<=n-1

หมายเหตุ รับประกันว่า คำตอบที่ถูกต้องจะมีเพียงแบบเดียวเท่านั้น นั่นคือจะมีวิธีการคูณที่จำนวนครั้งน้อยที่สุดแบบเดียว

ข้อมูลนำเข้า

บรรทัดแรก ประกอบด้วยจำนวนเต็ม n (1<=n<=100) แทนจำนวนเมทริกซ์

บรรทัดถัดมา ประกอบด้วยจำนวนเต็ม n+1 จำนวน แทนขนาดของเมทริกซ์


ข้อมูลส่งออก

บรรทัดแรก ประกอบด้วยจำนวนเต็ม 1 จำนวน แทนจำนวนการคูณน้อยที่สุดในการคูณลูกโซ่เมทริกซ์นี้ บรรทัดที่สอง แสดงลำดับการคูณของเมทริกซ์ โดยตั้งชื่อเมทริกซ์เป็น A


Sample Test Case

input

5
5 10 15 1 10 5

output

275
((A0*(A1*A2))*(A3*A4))