莫名其妙的报错了
#include<bits/stdc++.h>
using namespace std;
const int N = 40005;
int n, s[N][N], sum[N], dp[N][N];
int main(){
cin >> n;
memset (dp, 0x3f, sizeof(dp));
for (int x, i = 1; i <= n; i++) {
cin >> x;
sum[i] = sum[i-1] + x;
dp[i][i] = 0;
s[i][i] = i;
}
for (int l = 1; l < n; l++)
for (int i = 1; i + l <= n; i++)
for (int j=i+l,k=s[i][j-1];k<=s[i+1][j];k++) {
int kk = dp[i][k] + dp[k + 1][j] + sum[j] - sum[i - 1];
if (dp[i][j] > kk) {
s[i][j] = k;
dp[i][j] = kk;
}
}
cout << dp[1][n];
return 0;
}