1 条题解

  • 0
    @ 2025-4-7 21:38:00

    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
    上传者