可以帮我改一下这道题吗

#include <bits/stdc++.h>
#define N 205
#define M 605
#define Max(x,y,z) (z>(x>y?x:y)?z:(x>y?x:y))
using namespace std;
int n,v1,v2,v[N],w[N],dp[M][M],ans;
signed main()
{
scanf("%d%d%d",&n,&v1,&v2);
for(int i=1;i<=n;i++)scanf("%d%d",&w[i],&v[i]);
for(int i=1;i<=n;i++)
{
for(int j=v1;j>=w[i];j--)
{
for(int k=v2;k>=w[i];k--)
dp[j][k]=Max(dp[j][k],dp[j-w[i]][k]+v[i],dp[j][k-w[i]]+v[i]);
}
}
printf("%d",dp[v1][v2]);
return 0;
}