我的dp哪里挂了
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int maxn=105;
int f[maxn][maxn][maxn],n,a[maxn],b[maxn],m,ans=1e18;//前i个选j个modw为k
signed main()
{
scanf("%lld%lld",&n,&m);
for(register int i=1;i<=n;i++)scanf("%lld",&a[i]);
for(register int w=1;w<=n;w++)
{
for(register int i=0;i<maxn;i++)for(register int j=0;j<maxn;j++)for(register int k=0;k<maxn;k++)f[i][j][k]=-1e17;
f[0][0][0]=0;
for(register int i=1;i<=n;i++)
{
b[i]=a[i]%w;
for(register int j=1;j<=w;j++)
{
for(register int k=0;k<w;k++)f[i][j][k]=max(f[i-1][j][k],f[i-1][j-1][(k-b[i]+w)%w]+a[i]);
}
if(i!=n)f[i][0][0]=0;
}
if(f[n][w][m%w]==-1e17)continue;
ans=min(ans,(m-f[n][w][m%w])/w);
}
printf("%lld",ans);
return 0;
}