1 条题解

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

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