1 条题解
-
0
C++ :
#include<iostream> #include<cstdio> #include<cstring> #include<cstdlib> #include<algorithm> using namespace std; int main(){ int w,n,a[100000]; cin>>w>>n; for(int i=1;i<=n;i++) cin>>a[i]; sort(a+1,a+n+1); int i=1,j=n,ans=0; while(i<=j){ if(a[i]+a[j]<=w){ ans++; i++; j--; } if(a[i]+a[j]>w){ ans++; j--; } } cout<<ans; return 0; }
Pascal :
var i,j,k,m,n,ans:longint; a:array[0..30001]of longint; procedure qsort(l,r:longint); var i0,j0,mid,e:longint; begin i0:=l;j0:=r; mid:=a[(i0+j0)div 2]; repeat while a[i0]>mid do i0:=i0+1; while a[j0]<mid do j0:=j0-1; if i0<=j0 then begin e:=a[i0];a[i0]:=a[j0]; a[j0]:=e;i0:=i0+1;j0:=j0-1; end; until i0>j0; if l<j0 then qsort(l,j0); if i0<r then qsort(i0,r); end; begin readln(k); readln(n); for i:=1 to n do readln(a[i]); qsort(1,n); i:=1;j:=n;ans:=0; while i<=j do if (i<j)and ( a[i]+a[j]<=k) then begin ans:=ans+1;i:=i+1;j:=j-1;end else begin ans:=ans+1; i:=i+1; end; write(ans); end.
- 1
信息
- ID
- 1774
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者