1 条题解
-
0
C :
#include<stdio.h> #include<stdlib.h> int a[30001]; int ans,w,len,l,r,n; int cmp(const void*a,const void*b) { int c=*(int*)a,d=*(int*)b; if (c<d) return -1; if (c>d) return 1; return 0; } int main() { scanf("%d%d",&w,&n); for (int i=1;i<=n;++i) scanf("%d",&a[i]); qsort(a,n+1,sizeof(int),cmp); int t=w-a[1]; len=n; while (a[len]>t) --len; ans=n-len; l=1;r=len; while (l<=r) if (l==r) { ++ans; break; } else if (a[l]+a[r]<=w) { ++ans; ++l; --r; } else { ++ans; --r; } printf("%d\n",ans); return 0; }C++ :
#include <iostream> #include <algorithm> using namespace std; int a[30010]; int main() { int n, w, count=0; cin>>w>>n; for (int i=0; i<n; i++) cin>>a[i]; sort(a, a+n); for (int i=n-1, j=0; i>=j; i--) { if (a[i]==w) count++; else { if (a[i]+a[j]<=w) { count++; j++; } else count++; } } cout<<count<<endl; return 0; }
- 1
信息
- ID
- 1060
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者