记录编号 |
536093 |
评测结果 |
AAAAAAAAAAA |
题目名称 |
[NOIP 2007]纪念品分组 |
最终得分 |
100 |
用户昵称 |
没啥,随心 |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.072 s |
提交时间 |
2019-07-06 21:04:39 |
内存使用 |
13.77 MiB |
显示代码纯文本
#include <iostream>
#include <cstdio>
using namespace std;
int w,n,a[30001],m=0;
int kp(int x,int y){
int i,j,mid;
i=x; j=y;
mid=a[(x+y)/2];
while(i<=j)
{
while(a[i]<mid) i++;
while(a[j]>mid) j--;
if(i<=j)
{
m=a[i];
a[i]=a[j];
a[j]=m;
i++;
j--;
}
}
if(x<j) kp(x,j);
if(i<y) kp(i,y);
}
int main(){
int i=1,j,g=0;
freopen("group.in","r",stdin);
freopen("group.out","w",stdout);
cin>>w>>n;
for(int i=1;i<=n;i++)
cin>>a[i];
kp(1,n);
j=n;
while(i<=j)
{
if(a[i]+a[j]<=w)
{
i++;j--;g++;
}
else
{
g++;j--;
}
}
cout<<g;
}