bzl8289586 2014-01-28 07:06:33
点我顶贴
收藏
删除
大神们帮忙看看:
#include<stdio.h>
#include<string.h>
#define MAX 30000+10
int main()
{
int w,n,i,j,p[MAX],a[MAX],p2,k=0,q=0;
memset(a,0,sizeof(a));
scanf("%d",&w);scanf("%d",&n);
for(i=0;i<n;i++)scanf("%d",&p[i]);
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{
int tmp;
if(p[j]<p[i]){tmp=p[i];p[i]=p[j];p[j]=tmp;}
}
for(i=0;i<n;i++)
{
p2=p[i];
for(j=n;j>0;j--)
if(p2+p[j]<=w && j!=i && a[j]==0)
{
a[j]=1;
a[i]=1;
k++;
break;
}
}
for(i=0;i<n;i++)q+=a[i];
k+=n-q;
printf("%d",k);
}