主题:怎么一直是WA?高手来看看
这是RQNOJ的第二题,
[url]http://www.rqnoj.cn/Problem_2.html[/url]
下面是我的代码,总是WA,只过了三个测试点,找不到错在何处啊??大侠帮我看看
[code=c]
#include<stdio.h>
#include<malloc.h>
int main()
{
int *mony,*obj;
int N,m,Imp;
int f[3001]={0};
int i,j;
scanf("%d%d",&N,&m);
mony=(int *)calloc(m,sizeof(int));
obj=(int *)calloc(m,sizeof(int));
for(i=0;i<m;i++)
{
scanf("%d",mony+i);
scanf("%d",&Imp);
*(obj+i)=(*(mony+i))*Imp;
}
for(i=0;i<m;i++)
{
for(j=N;j>=mony[i];j--)
{
if(f[j]<f[j-mony[i]]+obj[i])
f[j]=f[j-mony[i]]+obj[i];
}
}
printf("%d\n",f[N]);
free(mony);free(obj);
return 0;
}[/code]
[url]http://www.rqnoj.cn/Problem_2.html[/url]
下面是我的代码,总是WA,只过了三个测试点,找不到错在何处啊??大侠帮我看看
[code=c]
#include<stdio.h>
#include<malloc.h>
int main()
{
int *mony,*obj;
int N,m,Imp;
int f[3001]={0};
int i,j;
scanf("%d%d",&N,&m);
mony=(int *)calloc(m,sizeof(int));
obj=(int *)calloc(m,sizeof(int));
for(i=0;i<m;i++)
{
scanf("%d",mony+i);
scanf("%d",&Imp);
*(obj+i)=(*(mony+i))*Imp;
}
for(i=0;i<m;i++)
{
for(j=N;j>=mony[i];j--)
{
if(f[j]<f[j-mony[i]]+obj[i])
f[j]=f[j-mony[i]]+obj[i];
}
}
printf("%d\n",f[N]);
free(mony);free(obj);
return 0;
}[/code]