Run ID | 作者 | 问题 | 语言 | 测评结果 | Time | Memory | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|
28584 | . | 纪念品分组 | C++ | Accepted | 8 MS | 876 KB | 452 | 2022-06-24 00:57:07 |
#include <bits/stdc++.h> #define left (k<<1) #define right (k<<1|1) using namespace std; const int maxn=3e4+10; int w,n,val[maxn],l,r,ans; int main() { scanf("%d%d",&w,&n); for(int i=1;i<=n;i++) scanf("%d",&val[i]); sort(val+1,val+1+n); l=1,r=n,ans=0; while(l<r) { if(val[l]+val[r]>w) { r-=1; ans+=1; } else { l+=1; r-=1; ans+=1; } } if(l==r) ans+=1; printf("%d",ans); return 0; }