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