背包问题的变式,但我的代码可能漏掉情况或者数据有问题 希望有大佬帮帮我这个菜鸟

一个背包问题的变式,厨师做包子,我在一个习题网站提交时总有一些测验数据错误,但是我不知道是我漏掉情况,还是数据错误。下面是我的代码,不过那个网站没什么提示,只是显示错误和正确。

#include<stdio.h>
int max(int x,int y)
{
    if(x>y) return x;
    return y;
}
int  f[20][1007]={0},
d[20]={0},//某种馅料的数量 
c[20]={0},//馅料耗材 
v[20]={0},//馅料产品售价 
n,//面团总重 
m;//馅料种类数量 

int main(){
int i,j,k,x,y;
scanf("%d %d %d %d",&n,&m,&c[1],&v[1]);
d[1]=n;
#for(i=2;i<=m+1;i++)
{scanf("%d %d %d %d",&x,&y,&c[i],&v[i]);//x为馅料总重 y为每一个包子所要馅料
d[i]=x/y;
}

for(i=1;i<=m+1;i++) 
for(j=1;j<=n;j++)
for(k=1;k*c[i]<=j&&k<=d[i];k++)
f[i][j]=max(f[i-1][j],f[i-1][j-k*c[i]]+k*v[i]);

printf("%d",f[m+1][n]);

}

图片说明
图片说明

https://blog.csdn.net/l1037746466/article/details/105609805