写的暴力,不用管TLE,但是第四个点WA了
#include<bits/stdc++.h>
#define ag std
#define int long long
using namespace ag;
int n,p,m;
int a[2005];
int b[2005];
int as[2005];
int bs[2005];
int dp[2005][2005];
signed main(){
cin>>n>>p>>m;
for(int i=1;i<=n;i++)scanf("%lld%lld%lld%lld",&a[i],&b[i],&as[i],&bs[i]);
memset(dp,0x8f,sizeof dp);
dp[0][0]=0;
for(int i=1;i<=n;i++){
for(int j=0;j<=p;j++){
dp[i][j]=max(dp[i][j],dp[i-1][j]);
dp[i][j]=max(dp[i][j],-j*a[i]);
if(i>=m+1) {
for(int k=max(j-as[i],0ll);k<j;k++)
dp[i][j]=max(dp[i][j],dp[i-m-1][k]-(j-k)*a[i]);
for(int k=j+1;k<=min(j+bs[i],p);k++)
dp[i][j]=max(dp[i][j],dp[i-m-1][k]+(k-j)*b[i]);
}
}
}
cout<<dp[n][0];
}