题目
#include<bits/stdc++.h>
using namespace std;
long long a[510],c[510];
const long long MAX=1e18;
long long f[510][510];
int main(){
int n;
cin>>n;
for(int i=1;i<=n;i++){
cin>>c[i]>>a[i];
f[i][i]=c[i];
}
long long tmp,end;
for(int l=2;l<=n;l++){
for(int begin=1;begin<=n-l+1;begin++){
end=begin+l-1;
f[begin][end]=MAX;
for(int k=begin;k<=end;k++){
tmp=f[begin][k-1]+f[k+1][end];
if(k==1) continue;
if(l!=n) tmp+=f[begin][k-1]*a[k];
f[begin][end]=min(f[begin][end],tmp);
}
}
}cout<<f[1][n];
return 0;
}