คูณเมทริกซ์ 3 (matmul3)
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))