#include<iostream>
#define N 7
using namespace std;
void chengfa(int * p,int n,int cishu[][N],int duandian[N][N] ){
for (int i = 1; i < n; i++) {
cishu[i][i] = 0;
}
for(int r=2;r<n;r++)
for (int i = 1; i <= n - r; i++)
{
int j = i + r-1;
cishu[i][j] = cishu[i][i] + cishu[i + 1][j] + p[i - 1] * p[i] * p[j];
duandian[i][j] = i;
for (int k = i + 1; k < j; k++) {
int t = cishu[i][k] + cishu[k + 1][j] + p[i - 1] * p[k] * p[j];
if (t < cishu[i][j]) {
cishu[i][j] = t;
duandian[i][j] = k;
}
}
}
}
void shuchu(int i,int j, int s[][N]) {
if (i == j) cout << "A" << i;
else {
cout << "(";
shuchu(i,s[i][j],s);
shuchu(s[i][j] + 1, j, s);
cout << ")";
}
}
int main() {
int p[N] = { 30, 35, 15, 5, 10, 20, 25 };
int cishu[N][N]; int duandian[N][N];
chengfa(p, N, cishu, duandian);
shuchu(1, N - 1, duandian);
cout <<"乘法次数"<< cishu[1][N-1];
return 0;
}