数据开的够大吗
#include<bits/stdc++.h>
#define int long long
using namespace std;
int n, k, a[105][105], dp[105][105][5055], ans = -9e18;
signed main()
{
cin>>n>>k;
for(int i = 1; i <= n; i++) for(int j = 1; j <= i; j++) cin>>a[i][j];
for(int i = 1; i <= n; i++) for(int j = 1; j <= i; j++) for(int l = 0; l <= k; l++) dp[i][j][l] = -9e18;
for(int i = 1; i <= n; i++)
{
for(int j = 1; j <= i; j++)
{
for(int l = 0; l <= k; l++)
{
dp[i][j][l] = max(dp[i-1][j][l], dp[i-1][j-1][l]) + a[i][j];
if(l != 0) dp[i][j][l] = max(dp[i][j][l], max(dp[i-1][j][l-1] + a[i][j] * 3ll, dp[i-1][j-1][l-1] + a[i][j] * 3ll));
}
}
}
for(int i = 1; i <= n; i++) for(int l = 0; l <= k; l++) ans = max(ans, dp[n][i][l]);
cout<<ans;
return 0;
}