SWUST-最多苹果数量

SWUST-最多苹果数量_第1张图片

显然每次装重量最小的苹果是最优的。

代码如下(c++)

#include
#include
using namespace std;
int main() {
    int m, n,sum=0;
    cin >> m >> n;
    int* arr = new int[n];
    for (int i = 0; i < n; i++) cin >> arr[i];
    sort(arr, arr + n, less());
    for (int i = 0; i < n; i++) {
        if (sum + arr[i] > m) {
            cout << i << endl;
            return 0;
        }
        else {
            sum += arr[i];
        }
    }
    cout << n << endl;
    return 0;
}

(c)

#include
#include
int main(){
    int m,n,sum=0;
    scanf("%d %d",&m,&n);
    int *arr=(int *)malloc(n*sizeof(int));
    for (int i=0;iarr[j+1]){
                int temp=arr[j];
                arr[j]=arr[j+1];
                arr[j+1]=temp;
            }
        }
    }
    for (int i=0;im){
            printf("%d\n",i);
            return 0;
        }else {
            sum+=arr[i];
        }
    }
    printf("%d\n",n);
    return 0;
}

你可能感兴趣的:(SWUST,OJ,#期末真题/转专业题,算法,数据结构,排序算法)