题目:http://acm.hdu.edu.cn/showproblem.php?pid=1171
题目大意为有一些器材每个器材都有其特定的价值,
现在将这些器材分为来两组AandB,而且A>B
#include <stdio.h>
#include <string.h>
int c1[250050],c2[250050];
int main()
{
intnum[55],m[55],sum;
inti,j,k,len,n;
while(scanf("%d",&n),n>0)
{
sum=0;
memset(m,0,sizeof(m));
memset(num,0,sizeof(num));
for(i=1;i<=n;i++)
{
scanf("%d%d",&m[i],&num[i]);
sum+=m[i]*num[i];
}
memset(c1,0,sizeof(c1));
memset(c2,0,sizeof(c2));
len=num[1]*m[1];
for( i=0; i<=len;i+=m[1])
c1[i]=1;
for( i=2; i<=n; i++)
{
for( j=0; j<=len; j++)
for(int k=0; k<=m[i]*num[i]; k+=m[i])
c2[j+k]+=c1[j];
len+=num[i]*m[i];
for( j=0; j<=len; j++)
{