一本通 1296 开餐馆
代码:
#include<bits/stdc++.h>
using namespace std;
int const INF=-1e9;
const int N=105;
int m[N],p[N],dp[N];
int main()
{
int t;
cin>>t;
while(t--)
{
int n,k;
cin>>n>>k;
for(int i=1;i<=n;i++)
cin>>m[i];
for(int i=1;i<=n;i++)
cin>>p[i],dp[i]=p[i];
for(int i=1;i<=n;i++)
for(int j=1;j<=i-1;j++)
if(m[i]-m[j]>k)
dp[i]=max(dp[i],dp[j]+p[i]);
int maxi=INF;
for(int i=1;i<=n;i++)
maxi=max(dp[i],maxi);
cout<<maxi<<"\n";
}
return 0;
}